[PHP] [SimplePie] : 複数のRSSを取得して更新順に表示させる [キャッシュ/更新時間指定]
「SimplePie」を利用した、RSSを取得して表示させるスクリプト
RSSというフォルダーに作ったPHPスクリプトを放り込み、そのスクリプトをホームページから読み込んで表示させるという使い方での説明になります。 わかり辛いかもしれませんが、どうかご勘弁を・・・。
SimplePieの “autoloader.php” はそのRSSフォルダー(フォルダー名は勝手につけたものですので、何でも良いのですが・・・)に置き、更にそのフォルダー内にダウンロードしてきた SimplePieのモジュールをそっくりと入れておきます。 この辺の方法については先輩たちのサイトに詳しく書かれていますので、検索して調べてみてください。
※ホームページ(index.php など)と同じフォルダ以内へ設置してもかまいませんが、”autoloader.php” へのリンクと “cache”フォルダーへのリンクを変更してください。
※こちら(WordPress Note様) などを参考に。 自身は多くの先輩サイトにお世話になりました。(後述)
※同スクリプト(SimplePieモジュール)を使用していると思われるサイトがエラーを吐いているのが見かけられましたが、バージョンアップしていないせいだと思います。 新しいバージョンでは PHP7 にも対応していますので大丈夫なはずです。
<?php
require_once(‘./RSS/autoloader.php’);
$feed=new SimplePie;
$feed->set_cache_duration(‘18000’); // 単位は秒で、Noのときは ‘false’
$feed->set_cache_location(‘./RSS/cache/’); // キャッシュ保存するディレクトリ
$feed->set_feed_url(
array( // 何個でも追加可能(多いと重くなるかも)
‘https://news.yahoo.co.jp/pickup/rss.xml’, // 例)Yahooニュース:主要
‘https://headlines.yahoo.co.jp/rss/it_nlab-dom.xml’, // 例)ねとらぼ
‘https://headlines.yahoo.co.jp/rss/ytv-dom.xml’, // 例)読売テレビ
)
);$feed->set_item_limit(3); // 1サイトの最大表示件数
$feed->init();
$maxitems = $feed->get_item_quantity(10); // 全表示件数
$feedItems=$feed->get_items(0,$maxitems);echo ‘<table border=”0″ width=”100%” cellpadding=”0″ cellspacing=”1″>’;
foreach($feedItems as $item){
$website = $item->get_feed()->get_title(); // サイト名
$sitelink = $item->get_feed()->get_permalink(); // サイトへのリンクURL
$date = $item->get_gmdate(‘H:i, M d, Y’); // 各記事の日付(ここではGMT)
$title = $item->get_title(); // 各記事のタイトル
$link = $item->get_link(); // 各記事のURLif ($item->get_gmdate(‘Y/m/d’) >= gmdate(‘Y/m/d’, strtotime( ‘- 2 day’ ) ) ) {
$newmark = ‘<font color=#ff0000>new!</font>’; // new! マーク
} else {$newmark = ”;}$str = <<<EOF
<tr>
<td bgcolor=”#ffffff” style=”font-size:12px”;><a href=”$link” target=”_blank”><B>$title</B></a> $newmark</td>
<td bgcolor=”#ffffff” style=”font-size:10px”; nowrap align=”right” valign=”top”>
<font color=”#999999″><B>$date</B></font></td><td width=”10px”></td>
<td bgcolor=”#ffffff” style=”font-size:12px”; align=”right” Nowrap>
<a href=”$sitelink” target=”_blank”><font color=”green”><B>$website</B></font></a></td>
</tr>
EOF;echo $str;
}echo ‘</table>’;
?>
“echo” 部分や、”$str” 内のHTML部分は例ですので表示する部分に合わせて変更してください。 また、時間の取得はUTC(GMT)になっておりますので、日本国内でのみの仕様の場合はJSTでも良いと思います。
“new!” マークの表示部分もGMT時間での計算になっておりますので、変更するようでしたらこちらも同時に変えてください。
作成したこのPHPファイルを適当な名前でRSSフォルダー(例)に保存し、メインのホームページ(PHPで作らないといけません、例えば “index.php”)から “<?php include(“RSS/honyarara.php”); ?>” という風に呼び出して使います。 この辺は使い方によって変わってくると思いますので、各自でお考えください。
表示できないものがあるとエラーになってしまうので注意してください。
んー 久しぶりにバージョンアップしたら色々と変わっていて(WordPressが・・)スクリプト部分がうまく表示できませんでした、すみません Orz
勉強しておきます・・・・ いつになるかわかりませんが・・・・・・・
このスクリプトを作るに当たっては多くの先輩達のサイトを参考にさせていただきました。 ありがとうございます!
関連記事
