Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件内容增加了一个额外的amp;_Php_Curl_Geolocation_File Get Contents - Fatal编程技术网

Php 文件内容增加了一个额外的amp;

Php 文件内容增加了一个额外的amp;,php,curl,geolocation,file-get-contents,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/ma

你好,我正在定位一些城市, 将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);
当我使用文件获取内容时,我得到:

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
我注意到url发生了变化:
language=el&有一个额外的
&
,它在文件获取内容之前不存在。 我尝试了卷曲的方法,但结果是一个空值

我使用了
urlencode()
函数,没有任何更改。 我有什么问题吗?
这个“amp;”从何而来?

试着在
$map\u url
中用
urlencode($area)
替换
$area
。Curl仍然不起作用,file\u get\u contents不会抛出错误,但返回错误的数据。返回国家/地区的位置,而不是管理区域
文件\u get\u contents()
不添加
amp到我这端的URL(PHP5.5)。还可以尝试添加
$map\u url=htmlspecialchars\u decode($map\u url)
并查看它是否工作。它再次返回错误的结果尝试在
$map\u url
中用
urlencode($area)
替换
$area
。Curl仍然不工作,file\u get\u contents不会抛出错误,但返回错误的数据。返回国家/地区的位置,而不是管理区域
文件\u get\u contents()
不添加
amp到我这端的URL(PHP5.5)。还可以尝试添加
$map\u url=htmlspecialchars\u decode($map\u url)并查看它是否有效。它再次返回错误的结果