首页 > 解决方案 > simplexml_load_file 无法从 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不适用于这些类型的参数。任何有关此的建议将不胜感激。

标签: phpurlparametersurlencode

解决方案


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

  • 作为URL 参数的分隔符。
  • 作为一个字符,它是此类参数值的一部分。

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

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


推荐阅读