我正在使用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。
我在这里缺少什么? :(
感谢。
答案 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>
元素中。