如果我只使用像
这样的单词,谷歌地理编码api的工作非常出色悉尼
但如果我使用:
澳大利亚悉尼
它说不起作用:
警告: 的file_get_contents(https://maps.google.com/maps/api/geocode/json?address=sydney, Australia& sensor = false):无法打开流:HTTP请求失败! HTTP / 1.0 400错误请求
当我粘贴此网址时,即使它在我的浏览器中有效,但是当我使用此功能file_get_contents
时却没有。
我的问题很简单,当我粘贴此结果时,为什么它在我的浏览器中有效,以及为什么它不能与下面的代码一起使用。当然,如何解决这个问题。
$a = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=sydney, Australia&sensor=false");
答案 0 :(得分:6)
您必须对地址进行网址编码:
$a = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=" . urlencode('sydney, Australia') . "&sensor=false");
答案 1 :(得分:0)
这是造成问题的空间。人们正在使用:
$address = str_replace(' ','+',$address);
PS。它是一个迟到的回复,但可以帮助其他一些通过搜索到达页面的人,比如我。