我有一个函数,它接受一个地址数组,将它们传递到谷歌地图geocode api并返回纬度/经度坐标列表,然后保存到数据库。
它在我的环境中完美运行(php 5.4)但我最近推出了网站(服务器安装了php 5.3),我发现我的lat / lng数据库还没有得到更新。
作为一项测试,我提取了一段代码并独立运行,一次是从我的本地环境运行,一次是在我的服务器上运行。实时代码不会产生任何结果,我的本地代码会继续产生正确的结果。我不确定导致问题的是什么,因为实时网站是我本地网站的精确副本。
这是代码
$addr = '210 west 103rd street, ny 10025';
$addrencode = urlencode($addr);
$url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=".$addrencode;
$json_txt = file_get_contents($url);
if (! $json_txt)
return FALSE;
$json_arr = json_decode($json_txt, TRUE);
if ($json_arr["status"] != "OK")
return FALSE;
$result = $json_arr["results"][0];
$ret = array(
"addr" => $addr,
"faddr" => $result["formatted_address"],
"lat" => $result["geometry"]["location"]["lat"],
"lng" => $result["geometry"]["location"]["lng"]
);
print_r($ret);
知道在线上运行时可能会导致这种情况发生的原因吗?如果我实际上在浏览器中访问带有编码地址的URL,我也可以收集结果。
在本地我收到:
Array ( [addr] => 210 west 103rd street, ny 10025 [faddr] => 210 West 103rd Street, New York, NY 10025, USA [lat] => 40.7986924 [lng] => -73.9678981 )
现场直播我收到空白页