ずーーーーっと暖めているネタがありましてぇー、
それで一発また新しくサイトを作ってしまおうと目論んでいるわけでしてぇー、
熱しやすく冷めやすい俺の性格からしてqiqirn.com内の諸々のサイトと同じ末路を辿るのは見えているんですが
所詮自己満足なので、そんなことは気にせずにゴーゴーです。
で、作る上でどうしてもやりたかったことの一つが「他サイトのRSSを自サイトで表示する」こと。
情報が更新されると勝手に自分のサイトでも更新されるっていうアレです。
一通り調べて、色々と試行錯誤して、何とか出来るようになりました。
どうせならってんで、このブログのRSSも表示させてみましたよ。
http://www.qiqirn.com/
JavaScriptとかiframeとかは使いたくなかったので、Magpie RSSを使ってphpで表示させることにしました。
参考にしたページは以下に。
【第27回】PHPでRSSの内容を表示する – Tech [Friday] プロモバイルエンジニアブログ
PHPのRSSパーサー MagpieRSS | muneto.murakami.biz Weblog
Magpie RSSを使用して日付表示できないエラー – 教えて!goo
今までqiqirn.comのトップページはindex.htmlだったんですが、これを機にindex.phpにしてしまいました。
でもこういうのって、鯖移転とかした時に仕様の違いで動いたり動かなかったりしそうでちょっと不安。
(2009/11/10追記)
WordPressを2.5から2.8にバージョンうpしたら、MagpieRSSでフィードが取得できなくなった。
正確には取得できるんだけど、表示されたりされなかったり、ものすごく不安定。
他サイトのRSSは普通に表示できるから、多分WPがRSSを出力する過程で何か問題があるんだろうけど
それを解決するスキルはないので、MagpieRSSからSimplePieに乗り換えました。
php部分はこんな感じに。
include('simplepie.inc'); // simplepie.inc を読み込む
$feed=new SimplePie; // インスタンス生成
$feed->set_cache_location('cache'); // Cache ディレクトリ
$feed->set_cache_duration(60); // キャッシュ間隔、単位は秒
$feed->set_feed_url('http://www.qiqirn.com/blog/feed'); // フィードしたいRSSのURL
$feed->init(); // パースを実行
$feedItems=$feed->get_items(0,3); // 表示件数を指定(この場合3個)
foreach($feedItems as $item){
$date = $item->get_date('Y/m/d'); // 各記事の日付
$title = $item->get_title(); // 各記事のタイトル
$link = $item->get_link(); // 各記事のURL
$author = $item->get_author()->get_name(); // 各記事の投稿者名
$entry = $item->get_description(); // 各記事の概要
$entry = mb_strimwidth($entry, 0, 90, "…" , "UTF-8"); // 概要のバイト数(0バイト目から90バイト目までを表示)
echo "<b>$date</b> ";
echo "<a href='$link'>$title</a><br>\n";
echo "$entry<br>\n";
}
コメントを残す