我正在使用Google Maps API进行一些测试,出于某种原因,有一些有效的地址会无缘无故地返回状态INVALID_REQUEST。这是我的PHP代码
$request_url = "https://maps.googleapis.com/maps/api/geocode/xml?address=".urlencode($address);
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->status;
return $status;
$ address example:
$address = "R. Espírito Santo, Viana, ES, Brasil" // status INVALID_REQUEST
但如果我尝试直接访问该网址,则返回状态确定
对于某些地址,它返回OK,但对于其他人,INVALID_REQUEST使用完全相同的代码仅更改地址。直接访问URL总是返回OK。
任何线索?
谢谢
答案 0 :(得分:0)
这是一个字符编码问题。 utf8_encode()(info)解决了它。
$address = utf8_encode($address);
答案 1 :(得分:-1)
使用urlencode()
(info)
$address = "R. Espírito Santo, Viana, ES, Brasil" // this can't be passed as query string
$request_url = "https://maps.googleapis.com/maps/api/geocode/xml?address=".urlencode($address); // urlencode() solves this
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->status;
return $status;