PHP Police API没有返回结果

时间:2014-08-19 13:38:43

标签: php api

这是我第一次使用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/

我没有得到任何响应此呼叫(页面上没有显示任何内容)。

我做错了什么?

2 个答案:

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