使用PHP从字符串中提取DATA

时间:2016-06-15 16:38:44

标签: php extract

我有一个包含一些数据的网址。我需要单独提取其数据。我设法正确完成了这个,但问题是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>

enter image description here

由于

2 个答案:

答案 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_decodejson_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.