simplexml_load_file 无法从 URL 获取数据

simplexml_load_file not able to fetch data from a URL

我正在使用 simplexml_load_file 函数从包含 XML 内容的 URL 中获取数据。 URL参数少,simplexml_load_file正常工作。

但是有几个参数包含 & 并且对于这些 simplexml_load_file 函数不起作用。这是我的代码。我尝试了 urlencoding 函数,但即使是这个也不起作用。这就是我的代码的样子

$api_url = urlencode($api_url);
$xml = simplexml_load_file($api_url);

这就是 URL 的样子

https://atlas.atdw-online.com.au/api/atlas/products?key=MYKEY&ar=Merimbula & Sapphire Coast&cats=ATTRACTION&size=10

在上面 URL 你可以看到参数 ar 的值包含 & 并且 simplexml_load_file 不适用于这些类型的参数。 对此有任何建议将不胜感激。

正如您在 URL 中看到的,与号 (&) 有两个功能:

  • 作为 URL parameters.
  • 的分隔符
  • 作为此类参数值的一部分的字符。

为了避免问题中出现的歧义,您通常 urlencode() URL 参数值。

然后你会做类似 $ar = urlencode('Merimbula & Sapphire Coast'); 的事情。如果您无法控制 ar 参数的构造方式,那么您必须从“Merimbula & Sapphire Coast”中删除 & 符号并将其替换为其他内容(例如 'and')。