有网站, 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请求失败!”
我该如何解决?
答案 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函数来传递用户代理。