file_get_contents增加了额外的放大器;

时间:2015-07-18 12:23:53

标签: php curl geolocation file-get-contents

您好我试图对一些城市进行地理定位, 直接在我的浏览器中使用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&还有一个额外的&amp,它在file_get_contents之前不存在。 我试过curl方式,但我拿了一个null

我使用了urlencode()函数,没有任何改变。 我有什么不对吗? 而这个“放大器”在哪里来自?

0 个答案:

没有答案