複数RSSを取得して、更新順に並べて最新の5件ほど表示する

mb_language('Japanese');
require_once('magpierss/rss_fetch.inc');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
require_once 'magpierss/rss_fetch.inc';
// キャッシュは五分に設定
define("MAGPIE_CACHE_AGE", 60*5);
// キャッシュ保存ディレクトリ指定
define("MAGPIE_CACHE_DIR", "cache/");
$rssurl = array();
$rssurl = @file("testdata.txt");

//複数RSSをまとめる配列
$rssarray = array();

foreach($rssurl as $rurl) {
	//最初の空白を除去!これを入れないとエラー出るよ!
	$rurl = trim($rurl);
	$rss = fetch_rss($rurl);
	$blogtitle = $rss->channel['title'];
	foreach($rss->items as $item) {
		//記事タイトル
		$title = $item['title'];
		//記事URL
		$url = $item['link'];
		//記事更新日時
		$date_timestamp = $item['date_timestamp'];
		$date = Date("[Y年m月d日]",$date_timestamp);
		$date;
		
		//記事内容
		$naiyo = $item['description'];
		$naiyo;
		
		//表示用文字列セット
		$linkstr = "◆" . $blogtitle . "
"; $linkstr .= $date; $linkstr .= " " . $title . "
\n"; $linkstr .= $naiyo . "
\n"; //ソート用の配列に挿入(配列のキーはタイムスタンプ型の更新日時) $rssarray["{$date_timestamp}"]= $linkstr; } } //連想配列をキー(記事更新日時:タイムスタンプ型)で降順にソート krsort($rssarray); foreach($rssarray as $value) { print $value; }


ここで詰まった!!!

URLが山ほどありすぎるので、外部テキストファイルから取得しようとすると、エラー。

Warning: MagpieRSS: Failed to fetch ここにfeedのURL (HTTP Response: HTTP/1.1 404 ) 
in magpierss/rss_fetch.inc on line 238
Notice: Trying to get property of non-object in RSS.php on line 21
Notice: Trying to get property of non-object in RSS.php on line 22
Warning: Invalid argument supplied for foreach() in RSS.php on line 22

なかなか原因がつかめませんでしたが、原因はテキストファイルの空白でした。
とはいえ、手動ではどうにもならないので、

//最初の空白を除去!これを入れないとエラー出るよ!
$rurl = trim($rurl);

この1行を追加。

全てまるくおさまりました〜〜♪

参考:http://ameblo.jp/yamasita-94nsr/entry-10018566158.html