Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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 simplexml\u加载\u文件无法从URL获取数据_Php_Url_Parameters_Urlencode - Fatal编程技术网

Php simplexml\u加载\u文件无法从URL获取数据

Php simplexml\u加载\u文件无法从URL获取数据,php,url,parameters,urlencode,Php,Url,Parameters,Urlencode,我正在使用simplexml\u load\u file函数从包含XML内容的URL获取数据。URL中几乎没有参数,simplexml\u load\u文件正常工作 但是包含&的参数很少,对于这些simplexml\u load\u file函数不起作用。这是我的密码。我尝试了urlencoding函数,但即使这个函数也不起作用。这就是我的代码的样子 $api_url = urlencode($api_url); $xml = simplexml_load_file($api_url); ht

我正在使用
simplexml\u load\u file
函数从包含XML内容的URL获取数据。URL中几乎没有参数,
simplexml\u load\u文件
正常工作

但是包含
&
的参数很少,对于这些
simplexml\u load\u file
函数不起作用。这是我的密码。我尝试了
urlencoding
函数,但即使这个函数也不起作用。这就是我的代码的样子

$api_url = urlencode($api_url);
$xml = simplexml_load_file($api_url);
https://atlas.atdw-online.com.au/api/atlas/products?key=MYKEY&ar=Merimbula & Sapphire Coast&cats=ATTRACTION&size=10
这就是URL的样子

$api_url = urlencode($api_url);
$xml = simplexml_load_file($api_url);
https://atlas.atdw-online.com.au/api/atlas/products?key=MYKEY&ar=Merimbula & Sapphire Coast&cats=ATTRACTION&size=10
在上面的URL中,您可以看到参数ar的值包含&并且
simplexml\u load\u file
不适用于这些类型的参数。
如果您对此有任何建议,我们将不胜感激。

从您的URL中可以看到,符号(&)有两个功能:

  • 作为一个分隔物
  • 作为此类参数值的一部分的字符
为了避免问题中出现的歧义,您通常需要输入URL参数值


然后您将执行类似于
$ar=urlencode('Merimbula&Sapphire Coast')。如果您无法控制如何构造
ar
参数,那么您必须从“Merimbula&Sapphire Coast”中删除符号and,并将其替换为其他内容(如“and”)。

我没有在完整的URL上实现urlencode函数,而是在一个参数上实现了它,这对我来说很有效。非常感谢。是的,您不会对整个URL执行此操作,因为这样您也会跳出参数分隔符,使URL再次无法使用。:)很高兴知道你成功了。