如何从远程站点加载XML文件


How to load an XML file from a remote site

有一个网站,shop.test.com.au(化名)

当我试图通过网站http://shop.test.com.au/,它将在浏览器中更改为shop.test.com.au

他们在网站上提供了一个xml页面链接

我需要从我的php页面访问该xml

以下是我的代码

$doc = new DOMDocument();
$doc->load('shop.test.com.au/1.xml');

然后它将返回一个错误"无法打开流:没有这样的文件或目录",可能是它正在检查我的本地机器。所以我把代码改成

 $doc = new DOMDocument();
 $doc->load('http://shop.test.com.au/1.xml');

然后我得到一个错误"无法打开流:HTTP请求失败!"

我该怎么解决?

最好使用CURL,确保安装了CURL,然后使用这个

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, "http://shop.test.com.au/1.xml");
$xml = curl_exec($curl);
curl_close($curl);

现在,$xml应该拥有您想要的数据。

尝试:

$f = file_get_contents("http://shop.test.com.au/1.xml");

然后,至少,这应该会给您错误的HTTP状态代码。

一旦您获得XML(希望通过解决错误),请使用:

$doc->loadXML($f);

您可能会发现该网站在没有指定用户代理的情况下阻止请求(我知道我的网站是这样做的),因此您可能需要使用cURL或Socket函数来传递用户代理。