您好我试图对一些城市进行地理定位, 直接在我的浏览器中使用api,我将xml作为结果。
https://maps.googleapis.com/maps/api/geocode/xml?language=el&components=administrative_area:ΔΗΜΟΣ ΑΓΙΟΥ ΝΙΚΟΛΑΟΥ|country:GR
但是当我试图用php解析它时:
$area="ΔΗΜΟΣ ΑΓΙΟΥ ΝΙΚΟΛΑΟΥ";
$map_url='https://maps.googleapis.com/maps/api/geocode/xml?language=el&components=administrative_area:'.$area.'|country:GR';
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,$map_url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Proclamations Parser');
curl_setopt($curl_handle, CURLOPT_ENCODING ,"");
$query = curl_exec($curl_handle);
curl_close($curl_handle);
//$response_xml_data = file_get_contents($map_url);
//$data=simplexml_load_string($response_xml_data);
//var_dump($data);
当我使用file_get_contents时,我得到:
Warning: file_get_contents(https://maps.googleapis.com/maps/api/geocode/xml?language=el&components=administrative_area:ΔΗΜΟΣ AΓΙΟΥ ΝΙΚΟΛΑΟΥ |country:GR):
failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
我注意到网址已更改:language=el&
还有一个额外的&
,它在file_get_contents之前不存在。
我试过curl方式,但我拿了一个null
我使用了urlencode()
函数,没有任何改变。
我有什么不对吗?
而这个“放大器”在哪里来自?