我有一个包含一些数据的网址。我需要单独提取其数据。我设法正确完成了这个,但问题是URL不断更改其数据顺序,使我的代码无用。请帮帮我。
这是我的代码:
<?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>
由于
答案 0 :(得分:2)
您尝试从中获取数据的字符串是JSON
字符串。您可以使用json_decode()
函数将其转换为PHP变量。
$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...
答案 1 :(得分: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.