Sabel_Rss_Readerクラスを使用すると、非常に簡単にフィードを読み込むことができます。読み取り可能な形式は
RDF, RSS 2.0, Atom 0.3, Atom 1.0 の4つです。
フィードを読み込む方法には、URLから、ファイルパスから、文字列からの3つがあります。
$feed = Sabel_Rss_Reader::loadUrl("http://www.example.com/feed.xml");
$feed = Sabel_Rss_Reader::loadFile("/path/to/feed.xml");
$feed = Sabel_Rss_Reader::loadString($feedXml);
フィード情報を取得するインターフェイスは非常にシンプルなものとなっています。しかし、その代わりにどのフィード形式にも存在する情報しか取得できないため、このパッケージで取得できない情報は
XMLパッケージ などを使用して自分でDOMを読んでいく作業が必要となります。
※例外としてRSS 2.0形式のフィードの場合のみ、カテゴリを取得することが可能です。
フィードのタイトルや概要などは、下記のように取得することができます。
echo $feed->getHome(); // ホームURL
echo $feed->getTitle(); // フィードタイトル
echo $feed->getDescription(); // フィード概要文
echo $feed->getLastUpdated(); // フィード最終更新日時
アイテム(記事など)は getItems()メソッド により、配列で取得することができます。
foreach ($feed->getItems() as $item) {
echo $item->title;
echo $item->uri;
echo $item->description;
echo $item->content;
echo $item->date;
}
アイテムの "content" には、フィード自体に "content" が存在しない場合、"description" の値が格納されます。つまり、その場合の "description" と "content" は同じ内容となります。なお、読み込んだフィードの形式が RSS 2.0 の場合のみカテゴリを取得することができます。
foreach ($feed->getItems() as $item) {
...
echo $item->category;
}