Zend_Feed

導入

Zend_Feed は、RSS や Atom のフィードを扱う機能を提供します。 フィードの要素や属性、そしてエントリの属性に、自然な方法でアクセスできるようになります。 また、Zend_Feed でフィードやエントリの構造を変更し、 その結果を XML に書き戻すという拡張機能もあります。将来的には Atom Publishig Protocol (AtomPP) にも対応させる予定です。

Zend_Feed の構成は、基底クラス Zend_Feed、 フィードやエントリを扱うための基底抽象クラス Zend_Feed_Abstract および Zend_Feed_Entry_AbstractRSS や Atom 用のフィードクラスとエントリクラスの実装、 そして自然な方法でそれらを操作するためのヘルパーから成り立っています。

以下では、RSS フィードの取得、 フィードデータの PHP 配列への変換、データの表示、 データベースへの保存などの簡単な使用例を示します。

Note: 注意
RSS フィードによって、使用できるチャネルやアイテムのプロパティが違います。 RSS の仕様ではオプションのプロパティが多く定義されているので、 RSS データを扱うコードを書く際にはこのことに注意しましょう。

Example #1 Zend_Feed による RSS フィードデータの使用

  1. // 最新の Slashdot ヘッドラインを取得します
  2. try {
  3.     $slashdotRss =
  4.         Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
  5. } catch (Zend_Feed_Exception $e) {
  6.     // フィードの読み込みに失敗しました
  7.     echo "フィードの読み込み中に例外が発生: {$e->getMessage()}\n";
  8.     exit;
  9. }
  10.  
  11. // チャネルデータの配列を初期化します
  12. $channel = array(
  13.     'title'       => $slashdotRss->title(),
  14.     'link'        => $slashdotRss->link(),
  15.     'description' => $slashdotRss->description(),
  16.     'items'       => array()
  17.     );
  18.  
  19. // チャネルの各項目をループし、関連するデータを保存します
  20. foreach ($slashdotRss as $item) {
  21.     $channel['items'][] = array(
  22.         'title'       => $item->title(),
  23.         'link'        => $item->link(),
  24.         'description' => $item->description()
  25.         );
  26. }

Zend_Feed