不知道为什么,但我没有从json电话回来。我回复了内容,并将其粘贴到我的浏览器的网址栏中,并且可以正常工作。这里是否存在我需要解决的某种域名问题?
$connect = open_db();
$result = mysql_query("SELECT search_id, search_term FROM search WHERE search_poi_id IS NULL");
while($row = mysql_fetch_assoc($result)){
$call = "http://maps.google.com/maps/api/geocode/json?address=".$row["search_term"]."&sensor=false";
$json = file_get_contents($call);
print_r($json);
}
close_db($connect);
答案 0 :(得分:1)
file_get_contents()
可能并不总是适用于外部网址。来自php.net:
如果已启用fopen包装,则可以使用此函数将URL用作文件名。有关如何指定文件名的更多详细信息,请参阅
fopen()
。有关各种包装器具有哪些功能的信息,使用说明以及它们可能提供的任何预定义变量的信息,请参阅支持的协议和包装器。
答案 1 :(得分:0)
所以回声有效吗?那么,有没有有效的JSON?现在问题是什么?如果你想要JSON到一个数组,那么json_decode()
就是你想要的。
有关详细信息,请参阅http://php.net/manual/en/function.json-decode.php。
答案 2 :(得分:0)
如果您想进一步处理数据,可以这样做:
$data = array();
$connect = open_db();
$result = mysql_query("SELECT search_id, search_term FROM search WHERE search_poi_id IS NULL");
while($row = mysql_fetch_assoc($result)){
$call = "http://maps.google.com/maps/api/geocode/json?address=".$row["search_term"]."&sensor=false";
$data[] = json_decode(file_get_contents($call));
}
close_db($connect);
foreach($data as $d)
print_r($d);
这些数据应该是一个数组数组然后你可以做你想做的任何事情......
编辑:
如果file_get_contents()
无效,请尝试以下操作:
$data = array();
$connect = open_db();
$result = mysql_query("SELECT search_id, search_term FROM search WHERE search_poi_id IS NULL");
while($row = mysql_fetch_assoc($result)){
$call = "http://maps.google.com/maps/api/geocode/json?address=".$row["search_term"]."&sensor=false";
$handle = fopen($call, "rb");
$contents = stream_get_contents($handle);
fclose($handle);
$data[] = json_decode($contents);
}
close_db($connect);
foreach($data as $d)
print_r($d);