【问题标题】:get data from external url using php json?使用 php json 从外部 url 获取数据?
【发布时间】:2015-08-06 06:15:59
【问题描述】:

我正在尝试使用以下代码在 PHP 中使用 json 从外部 url 中提取数据:

<?php
error_reporting(-1);
ini_set('display_errors', 'On');
$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=37.76893497,-122.42284884&sensor=false";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
echo $json_data["formatted_address"];
?>

但是,我的页面上什么也没有。事实上,我得到了这个错误:

Notice: Undefined index: formatted_address on line 7 

我有什么遗漏吗?

任何帮助将不胜感激。

【问题讨论】:

  • var_dump($json) 应该对您和我们都有帮助:)
  • @Jigar,谢谢,var_dump($json) 现在在我的页面上打印 URL 的全部内容。
  • 请用var_dump($json)的输出更新您的问题。

标签: php json google-maps google-maps-api-3


【解决方案1】:

'formatted_address' 是主数组'results' 的一个键,所以你应该循环$json_data['results'] 并搜索键'formatted_address'

【讨论】:

  • 我尝试了 Chandu 的建议,但我的页面上仍然没有打印任何内容!一个空白页!
  • 我试过那个代码,它可以工作,php配置好了吗?
【解决方案2】:

试试这个方法

echo $json_data['results'][0]['formatted_address'];

【讨论】:

  • 还是什么都没有!一个空白页!
【解决方案3】:

您没有提供正确的INDEX。对于第一个结果,正确的 INDEX$json_data['results'][0]['formatted_address'];

使用foreach循环打印所有地址。

试试

$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=37.76893497,-122.42284884&sensor=false";
$json = file_get_contents($url);
$json_data = json_decode($json, true);

foreach($json_data['results'] as $item)
{
    echo $item['formatted_address']."<br />";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多