无法通过cURL获取XML输出

时间:2011-06-29 20:47:49

标签: php xml curl

我正在使用PHP cURL从URL获取XML输出。这是我的代码:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://www.mydomain.com?querystring'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
$store = curl_exec($ch);
echo $store;
curl_close($ch);

但是,它不是返回XML而是显示我的404错误页面。如果我在Web浏览器中键入URL http://www.mydomain.com?querystring,我可以在浏览器中看到XML。

我在这里缺少什么? :(

感谢。

1 个答案:

答案 0 :(得分:2)

某些网站所有者会检查是否存在某些内容,以确保请求来自网络浏览器而非机器人(或cURL)。您应该尝试添加curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)');,看看是否能解决问题。这将发送用户代理字符串。该网站还可能会检查是否存在cookie或其他内容。

要在网页中输出XML,您需要使用htmlentities()。您可能还希望将其包装在HTML <pre>元素中。