目次
Zend_Feed
は、RSS や Atom のフィードを扱う機能を提供します。
フィードの要素や属性、そしてエントリの属性に、自然な方法でアクセスできるようになります。
また、Zend_Feed
でフィードやエントリの構造を変更し、
その結果を XML に書き戻すという拡張機能もあります。将来的には Atom Publishig Protocol
(AtomPP) にも対応させる予定です。
Zend_Feed
の構成は、基底クラス Zend_Feed
、
フィードやエントリを扱うための基底抽象クラス Zend_Feed_Abstract
および Zend_Feed_EntryAbstract
、RSS や Atom
用のフィードクラスとエントリクラスの実装、
そして自然な方法でそれらを操作するためのヘルパーから成り立っています。
以下では、RSS フィードの取得、 フィードデータの PHP 配列への変換、データの表示、 データベースへの保存などの簡単な使用例を示します。
注意 | |
---|---|
RSS フィードによって、使用できるチャネルやアイテムのプロパティが違います。 RSS の仕様ではオプションのプロパティが多く定義されているので、 RSS データを扱うコードを書く際にはこのことに注意しましょう。 |
例 12.1. Zend_Feed による RSS フィードデータの使用
<?php require_once 'Zend/Feed.php'; // 最新の Slashdot ヘッドラインを取得します try { $slashdotRss = Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot'); } catch (Zend_Feed_Exception $e) { // フィードの読み込みに失敗しました echo "フィードの読み込み中に例外が発生: {$e->getMessage()}\n"; exit; } // チャネルデータの配列を初期化します $channel = array( 'title' => $slashdotRss->title(), 'link' => $slashdotRss->link(), 'description' => $slashdotRss->description(), 'items' => array() ); // チャネルの各項目をループし、関連するデータを保存します foreach ($slashdotRss as $item) { $channel['items'][] = array( 'title' => $item->title(), 'link' => $item->link(), 'description' => $item->description() ); } ?>