2016-06-15 3 views
-4

У меня есть URL-адрес, который содержит некоторые данные. Мне нужно извлечь его данные отдельно. Мне удалось сделать это правильно, но проблема в том, что URL-адрес постоянно меняет порядок данных, делая мой код бесполезным. Пожалуйста, помогите мне.Извлечение данных из строки с использованием PHP

Вот мои коды:

<?php 
$html = file_get_contents("https://stats.vatsim.net/user_count_json.php"); 
$res = explode(",", "$html"); 
$res1 = explode(":", "$res[1]"); 
$res2 = explode(":", "$res[2]"); 
$res3 = explode(":", "$res[3]"); 
$res4 = explode(":", "$res[4]"); 
$res5 = explode(":", "$res[5]"); 
$res6 = explode(":", "$res[6]"); 
$pilots = explode('""', trim($res1[1], '"')); 
$controllers = explode('""', trim($res2[1], '"')); 
$atis = explode('""', trim($res3[1], '"')); 
$observers = explode('""', trim($res4[1], '"')); 
$total = explode('""', trim($res5[1], '"')); 
$supervisors = explode('""', trim($res6[1], '"')); 
?> 
<h3 style="margin-left: 80px; margin-top: 75px;">Vatsim online users</h3> 

<div id="vs" style="border: solid 3px; padding: 25px; border-radius: 5px;" class="container"> 
<ul class="blocklist"> 
    <li>Pilots : <?php echo $pilots[0];?></li> 
    <li>Controllers : <?php echo $controllers[0];?></li> 
    <li>Atis : <?php echo $atis[0];?></li> 
    <li>Observers : <?php echo $observers[0];?></li> 
    <li>Supervisors : <?php echo $supervisors[0];?></li> 
    <li>Total : <?php echo $total[0];?></li>   

</ul> 
</div> 

enter image description here

Благодаря

+1

Есть ли что-то не так с 'json_decode'? –

+0

Узнайте, как использовать 'json' –

+0

Используйте' json_decode' и спросите себя, почему вы помещаете свои массивы в двойные кавычки. – kainaw

ответ

2

вы пытаетесь получить данные из строки является JSON строкой. Вы можете преобразовать его в переменную PHP, используя функцию json_decode().

$json = file_get_contents("https://stats.vatsim.net/user_count_json.php"); 
$data = json_decode($json, true); //The true parameter will convert the return value into an associative array 

//Access Data 
$pilots = $data['pilots']; 
$controllers = $data['controllers']; 
//...etc... 
+0

Спасибо за вашу помощь. Он отлично работает. :) –

1

Прежде всего, начнем с понимания того, что JSON - json.org

Далее, как json является популярным данных формат, все языки поддерживают его. В php json_decode и json_encode функции и others.

В вашем случае это:

$html = file_get_contents("https://stats.vatsim.net/user_count_json.php"); 
$array = json_decode($html, true); 
print_r($array); 
var_dump($array['observers']); // value of observers field.