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

时间:2012-03-22 21:41:34

标签: php xml

有网站, 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请求失败!

我该如何解决?

2 个答案:

答案 0 :(得分:2)

最好的方法是使用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应该有你想要的数据。

答案 1 :(得分:0)

尝试:

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

然后,至少应该为您提供错误的HTTP状态代码。

获得XML后(希望通过解决错误),使用:

$doc->loadXML($f);

您可能会发现该站点阻止了未指定用户代理的请求(我知道我的站点有),因此您可能需要使用cURL或Socket函数来传递用户代理。