【发布时间】:2016-07-10 12:44:46
【问题描述】:
几天来,我一直在尝试通过反复试验等方法来做到这一点,但绝对无济于事。 PHP 不是我的强项,但我通常对它感到满意,因为我可以在需要做特定事情时随时学习。
我正在尝试做的是从一个使用的平台获取 API,并将其输入到另一个使用的平台。我可以通过 URL 轻松地从 API 获取数据,并且它在不同的服务器上运行良好,所以我很确定在这方面一切都很好。
问题是,当我设法从 URL 中获取它时,它看起来很乱。到目前为止,我尝试过的任何事情都不会将它显示为一个漂亮的整洁块。此外,我希望能够从结果中提取特定数据并仅显示该数据。通过 URL 访问时,数据如下所示(已更改隐私等值,但应保持完整性):
{"Data":[{"DeviceID":"1","DeviceName":"Phone 1","Platform":"Phone OS","Edition":"Deluxe","State":"0 ","时间":"2016-03-16T13:47:44+01:00"}]}
基本上,我想做的是:
- 在阻止列表中显示数据,而不是长行
- 允许通过“设备名称”选择特定设备,然后显示与该设备相关的信息
到目前为止,我已经尝试过以下脚本:
1:
<?php
$json = file_get_contents('URLHERE');
$obj = json_decode($json);
echo $obj->DeviceID;
?>
2:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'URLHERE');
$result = curl_exec($ch);
curl_close($ch);
$obj = json_decode($result);
echo $result->DeviceName;
?>
3:
<?php
$url = 'URLHERE';
$obj = json_decode(file_get_contents($url), true);
echo $obj['DeviceID'];
?>
4:
<?php
$url = "URLHERE";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
echo "Device: ". $json_data["DeviceID"];
?>
5:
<?php
$json = file_get_contents('URLHERE');
$encodeJ = utf8_encode($json);
$obj = json_decode($encodeJ);
var_dump($obj-> DeviceID);
?>
第四个是我设法使用这些方法显示数据的最接近它的方法,但我只得到“设备:NULL”而不是任何信息
任何帮助将不胜感激。开始把我的头发拉出来!
更新: 已设法在以下方面取得了一些进展:
<?php
$data = file_get_contents('URLHERE');
$response = json_decode($data, true);
echo 'Device: ' . $response['Data']['0']['DeviceName'];
echo 'Device: ' . $response['Data']['1']['DeviceName'];
?>
这是显示数组中值 0 和 1 的设备名称。所以现在我需要弄清楚如何遍历数组并按顺序显示每个设备名称,而不是对每个设备进行硬编码。
【问题讨论】: