ブログを始めニュースサイト等などで更新情報を配信する手段として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://www.phppro.jp/news/rss.php';
$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";

?>

PHPプロ!ニュースのRSSが読み込まれ整形されて表示されます。流れを簡単に 説明すると、fetch_rss()で指定されたURLからRSSを取得、あとは配列にデー タが入っているので欲しいものだけ取り出す。それだけです。

ちなみに、そのままでは日本語が文字化けを起こします。そのため、上記スク リプトでも行っていますが、

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

として、エンコーディングをUTF-8に変更するのを忘れないでください。

簡単にRSSを取得し自分の好みに操作できるMagpieRSS、ブログに埋め込んだり 自作のRSSリーダを作成したり、可能性が広がるのではないでしょうか。

ちなみに、始めにも述べましたがMagpieRSSはGPLです。場合によってはプロジ ェクト内で使うには制約がきついかもしれません。その辺を十分考慮して使用 してください。

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


(アシアル 熊谷裕志)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。