有一个网站,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函数来传递用户代理。