自前のRSSリーダーを作るため、 RSSをパースして、自分のサイトにRSS内の情報を表示するためのPHPライブラリ「MagpieRSS」の事を色々調べてみたので、その設定方法&サーバ設置方法を以下にまとめてみた。
①magpierssから、magpierss-0.72.tar.gzをダウンロードして解凍。
(解凍できない場合はLhaplusをインストール)
②extlibフォルダとrss_cache.inc、rss_fetch.inc、rss_parse.inc、rss_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.inc、rss_fetch.inc、rss_parse.inc、rss_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/」)
css等でデザインを整えてやればバッチリかと♪
▼参考
コメント
参考になりました。
ありがとう御座います。
ちなみに18,23,25行目の[]内にクオートがないとエラーが出ました。
入れたら正常に動いたので参考になれば幸いです。
コメントありがとうございます♪
また、修正点のご指摘もありがとうございます。
完全に抜け落ちてました(^^ゞ
18,23,25行目と、ついでに20行目もクオート足しておきました♪