PHP中的Rss阅读器
问题描述:
header('Access-Control-Allow-Origin: *');
$tmpFile = 'tmpFile.txt';
$val="http://rss.news.yahoo.com/rss/topstories";
$curlHandle = curl_init($val);
$filePointer = fopen($tmpFile, "w");
curl_setopt($curlHandle, CURLOPT_FILE, $filePointer);
curl_exec($curlHandle);
curl_close($curlHandle);
fclose($filePointer);
$linesArr = file($tmpFile);
foreach($linesArr as $eachLine){
echo($eachLine);
}
程序应该从yahoo rss网站获取所有材料并将它们输出到tmpFile中。PHP中的Rss阅读器
执行程序后,我打开了tmpFile.txt。它显示
c1.ops.sp1.yahoo.com未压缩/分块周三4月11日1点46分41秒UTC 2012 - >
这看起来不正确的。我粘贴的网址http://rss.news.yahoo.com/rss/topstories有大量的材料返回。
答
你需要的是curl_setopt($curlHandle, CURLOPT_ENCODING , "gzip");
.... yahoo
使用compression
其rss
饲料...
其他信息包括。
A. CURLOPT_USERAGENT
....它很好,如果你不;吨怎样开始看起来像垃圾邮件
B. CURLOPT_TIMEOUT
...只是为了效益分析
C. CURLOPT_FOLLOWLOCATION
..问题Becasue与干净的URL和路线
工作守则
header ('Access-Control-Allow-Origin: *');
$tmpFile = 'out.txt';
$val = "http://rss.news.yahoo.com/rss/topstories";
$curlHandle = curl_init ($val);
$filePointer = fopen ($tmpFile, "w");
curl_setopt ($curlHandle, CURLOPT_FILE, $filePointer);
curl_setopt($curlHandle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2');
curl_setopt($curlHandle, CURLOPT_ENCODING , "gzip");
curl_setopt($curlHandle, CURLOPT_TIMEOUT,5);
curl_setopt($curlHandle, CURLOPT_FOLLOWLOCATION, TRUE);
curl_exec ($curlHandle);
curl_close ($curlHandle);
fclose ($filePointer);
$linesArr = file ($tmpFile);
foreach ($linesArr as $eachLine) {
echo ($eachLine);
}
我希望这有助于..让我知道,如果你需要什么更多
答
如果你有http
与文件包支持_ * _内容:
header('Access-Control-Allow-Origin: *');
$tmpFile = 'out.txt';
$content = file_get_contents("http://rss.news.yahoo.com/rss/topstories");
file_put_contents($tmpFile, $content);
echo $content;
而_what你change_?请不要倾倒“尝试此代码”的答案。注释他们说什么是不同的以及它是如何工作的。 – 2012-04-11 02:33:51
+1感谢您的提示.... @Micheal ... – Baba 2012-04-11 02:34:32
+1现在,这是一个值得upvoting的答案 – 2012-04-11 02:39:27