2008-03-13

MagpieRSSで簡単にRSSを操作

ブログを始めニュースサイト等などで更新情報を配信する手段としてRSSが使われています。皆さんはそれらRSSをどのように活用していますか?
RSSリーダを利用してそのRSSを読むというのが一般的だと思います。既製のRSSリーダを利用して楽しむのも良いですが、PHPを使うとこれらRSSを取得し自分好みにアレンジして表示するということが簡単にできます。

今回紹介するのは、それをPHPで簡単に実現することができるライブラリ「MagpieRSS」です。

MagpieRSSは、GPLで開発されているRSSを解析するライブラリ、いわゆるRSSパーサです。PHPでリモートからRSSを取得して解析、キャッシュを行います。対応しているRSSはRSS 0.9からRSS 1.0とRSS 1.0のモジュールと、RSS 2.0と Atomの一部になります。

MagpieRSSのサイトからMagpieRSSをダウンロードして解凍します。出てきたファイルの中で使用するのは基本的に、 rss_cache.inc、rss_fetch.inc、rss_parse.inc、rss_utils.inc の4つのファイルとextlibディレクトリです。

これらを同じディレクトリ階層におき下記スクリプトを書き保存して実行してください。

<?php
require_once('rss_fetch.inc');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

$url = 'http://feeds.feedburner.jp/trans-log';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
echo "<h1>$title</h1>\n";
echo "<dl>\n";
foreach ($rss->items as $item ) {
    $title = $item['title'];
    $link = $item['link'];
    $desc = $item['description'];
    echo "<dt><a href=\"$link\">$title</a></dt>\n";
    echo "<dd>$desc</dd>\n";
}
echo "</dl>\n";
?> 

RSSが読み込まれ整形されて表示されます。流れを簡単に説明すると、fetch_rss()で指定されたURLからRSSを取得、あとは配列にデータが入っているので欲しいものだけ取り出す。それだけです。
ちなみに、そのままでは日本語が文字化けを起こします。そのため、上記スクリプトでも行っていますが、

define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

として、エンコーディングをUTF-8に変更するのを忘れないでください。
簡単にRSSを取得し自分の好みに操作できるMagpieRSS、ブログに埋め込んだり自作のRSSリーダを作成したり、可能性が広がるのではないでしょうか。
ちなみに、始めにも述べましたがMagpieRSSはGPLです。場合によってはプロジェクト内で使うには制約がきついかもしれません。その辺を十分考慮して使用してください。

MagpieRSSのサイト:http://magpierss.sourceforge.net/

Bookmark

AddThis Social Bookmark Button