php curl脚本获取aspx页面的内容

时间:2012-03-15 11:51:49

标签: php curl

如果我没有正确地说明这一点,那么你们首先在论坛上发帖如此呐喊。

我现在已经尝试了大约一天的时间来获取xml feed到我的应用程序中。通常不是问题,我有两个其他的feed使用我在下面附加的simpleXml方法进入应用程序。

我的问题是这个其他页面是一个aspx页面,它似乎有某种重定向,或者可能只是使用一个使用干净网址的aspx框架。

这是我用于其他两个数据拉动的脚本。

$grb_feed_url = 'http://www.grb.uk.com/rss.php';
$grb_jobs = simplexml_load_file($grb_feed_url, 'SimpleXMLElement', LIBXML_NOCDATA);

这很好但是当我为网址http://www.milkround.com/rss.aspx尝试它时,它什么也没有返回。

然后我尝试了一个cURL脚本,这个适用于godaddy示例,但没有为Milkround网址返回任何内容。同样奇怪的是,如果我删除CURLOPT_FOLLOWLOCATION行或将其设置为0,则返回“object moved to here”。

function get_data($url)
{
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

$returned_content = get_data('http://www.milkround.com/rss');
print_r($returned_content);

/* example of a url that works using this script */
/* $returned_content = get_data('http://www.godaddy.com/hosting/website-builder.aspx'); */

任何帮助都会非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您需要在cURL请求中包含User-Agent标头,否则该网站会产生501错误:

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/4");