谷歌地理编码API只适用于一个字的地址


Google Geocoding API only works for one word address

如果我只使用像

这样的一个词,谷歌地理编码api工作得非常好
悉尼

但是如果我使用:

澳大利亚悉尼

它不工作,它说:

警告:file_get_contents (https://maps.google.com/maps/api/geocode/json?address=sydney,澳大利亚&sensor=false):打开流失败:HTTP请求失败!HTTP/1.0 400错误请求

即使它在我的浏览器中工作,当我粘贴这个url,但当我使用这个函数file_get_contents它没有。

我的问题很简单,为什么它在我的浏览器中工作,当我粘贴这个结果,为什么它不与下面的代码工作。当然还有如何解决这个问题。

$a = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=sydney, Australia&sensor=false");

您必须对地址进行url编码:

$a = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=" . urlencode('sydney, Australia') . "&sensor=false");

是空间造成的问题。人们正在使用:

$address = str_replace(' ','+',$address);

p。这是一个很晚的回复,但可能会帮助一些像我一样通过搜索到达页面的人。