PR

RSSパーサーPHPライブラリ「MagpieRSS」の設定方法&サーバー設置方法

スポンサーリンク

自前のRSSリーダーを作るため、 RSSをパースして、自分のサイトにRSS内の情報を表示するためのPHPライブラリ「MagpieRSS」の事を色々調べてみたので、その設定方法&サーバ設置方法を以下にまとめてみた。

RSSのイメージ

magpierssから、magpierss-0.72.tar.gzをダウンロードして解凍。
(解凍できない場合はLhaplusをインストール)

extlibフォルダrss_cache.incrss_fetch.incrss_parse.incrss_utils.inc以外はすべて削除。

rss_fetch.inc内342行目の「define('MAGPIE_CACHE_AGE', 60*60)」を「define('MAGPIE_CACHE_AGE', 10)」に置換(無駄にキャッシュが働いてデータ取得できない状態を回避するため、1時間のキャッシュ保持期間を10秒に変更)。

rss_fetch.inc内358行目の「ISO-8859-1」を「UTF-8」に置換(文字化けを防ぐため)。

extlibフォルダrss_cache.incrss_fetch.incrss_parse.incrss_utils.incを任意の場所にアップロード

⑥以下コードをコピペした適当な名前のファイル(index.php等)をアップロード。
ただし、2行目3行目のファイル名はアップしたURLを指定。
4行目は読み取りたいRSSアドレスにする。

<?php 
	include_once 'rss_fetch.inc';
	include_once 'rss_utils.inc';
	$url = 'http://ここにRSSアドレスを入力';
	$rss = fetch_rss($url);		//RSSの内容を取得
	$title = $rss->channel['title'];	//タイトル取得
	$description = $rss->channel['description'];	//本文取得

//以下、ページ出力部分
	//RSSタイトルとその説明文を出力
	echo "<h1>".$title."</h1>\n";
	echo "<p>".$description."</p>\n";

	//記事部分の出力
	echo "<ul>\n";
	foreach($rss->items as $item ){
	//日付取得&RSSの種類による取得エラー補正
		$date = $item['date_timestamp'];
		if($date == ""){
			$date = strtotime($item['dc']['date']);
		}
	//各種代入
		$title = $item['title'];	//タイトル代入
		$description = $item['description']; //本文代入
		$url = $item['link'];	 //URL代入
	//記事出力
		echo "<li>".date('Y年m月d日 G:i',$date).'<br /><a href="'
			.$url.'">'.$title.'</a><br />'.$description."</li>\n";
	}
	echo "</ul>\n";
?>

 

上記を忠実に行なってアップロードすると以下のページのようになる。
(フィード先はこのサイト「https://singoro.net/note/feed/」)

WEB覚書のRSSフィード

css等でデザインを整えてやればバッチリかと♪

 

▼参考

phpnoviceの日記
MagpieRSSのキャッシュとConditional GETについて

コメント

  1. 参考になりました。
    ありがとう御座います。

    ちなみに18,23,25行目の[]内にクオートがないとエラーが出ました。
    入れたら正常に動いたので参考になれば幸いです。

    • コメントありがとうございます♪

      また、修正点のご指摘もありがとうございます。
      完全に抜け落ちてました(^^ゞ

      18,23,25行目と、ついでに20行目もクオート足しておきました♪