phpcurl脚本获取aspx页面的内容

use*_*418 5 php curl

我已经尝试了大约一天的时间来将 xml feed 添加到我的应用程序中。通常这不是问题,我还有另外两个提要使用我在下面附加的 simpleXml 方法进入应用程序。

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

这是我用于其他两个数据提取的脚本,效果很好。

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

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

然后我尝试了一个 cURL 脚本,这个脚本对于 godaddy 示例效果很好,但对于 Milkround url 则不返回任何内容。同样奇怪的是,如果我删除 CURLOPT_FOLLOWLOCATION 行或将其设置为 0,它会返回“对象移至此处”。

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'); */
Run Code Online (Sandbox Code Playgroud)

MrC*_*ode 4

您需要在 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");
Run Code Online (Sandbox Code Playgroud)