这是我第一次使用PHP访问API。我正在尝试使用来自police.uk的数据。
这是我的PHP代码:
$lat = '52.629729';
$long = '-1.131592';
$date = '2013-01';
$get = file_get_contents("http://data.police.uk/api/crimes-street/all-crime?lat=".$lat."&lng=".$long."&date=".$date);
$json = json_decode($get, true);
echo $json['location'];
API文档:http://data.police.uk/docs/method/crime-street/
我没有得到任何响应此呼叫(页面上没有显示任何内容)。
我做错了什么?
答案 0 :(得分:2)
您对API的调用会返回如下内容:
array (size=1105)
0 =>
array (size=9)
'category' => string 'anti-social-behaviour' (length=21)
'location_type' => string 'Force' (length=5)
'location' =>
array (size=3)
'latitude' => string '52.626948' (length=9)
'street' =>
array (size=2)
...
'longitude' => string '-1.112172' (length=9)
'context' => string '' (length=0)
'outcome_status' => null
'persistent_id' => string '' (length=0)
换句话说,有多个条目。此外,位置信息是另一个数组:
array (size=3)
'latitude' => string '52.626948' (length=9)
'street' =>
array (size=2)
'id' => int 882380
'name' => string 'On or near Cedar Road' (length=21)
'longitude' => string '-1.112172' (length=9)
要输出所有位置(例如所有街道名称),您可以执行以下操作:
foreach($json as $entry) {
echo $entry['location']['street']['name'].'<br />';
}
如果您愿意,只需输出第一个条目的位置:
$json[0]['location']['street']['name'];
提示:对变量使用var_dump()
以查看其布局方式。
提示2:使用文件顶部的error_reporting(E_ALL);
可在您开发时输出所有错误。
答案 1 :(得分:0)
api返回一个对象数组。通过在json_decode中设置true,可以创建一个多维数据库数组。
您必须包含要访问的项目的数字键,以及嵌套数组的键,例如:
echo $json[0]['location']['street']['name'];//outputs: On or near Cedar Road