Zend Framework の紹介

 Learning Zend Framework

appendix

 Zend Framework リファレンス


  • 第36章 Zend_Gdata
  • 第37章 Zend_Http
  • 第38章 Zend_InfoCard
  • 第39章 Zend_Json
  • 第40章 Zend_Layout
  • 第41章 Zend_Ldap
  • 第42章 Zend_Loader
  • 第43章 Zend_Locale
  • 第44章 Zend_Log
  • 第45章 Zend_Mail
  • 第46章 Zend_Markup
  • 第47章 Zend_Measure
  • 第48章 Zend_Memory
  • 第49章 Zend_Mime
  • 第50章 Zend_Navigation
  • 第51章 Zend_Oauth
  • 第52章 Zend_OpenId
  • 第53章 Zend_Paginator
  • 第54章 Zend_Pdf
  • 第55章 Zend_ProgressBar
  • 第56章 Zend_Queue
  • 第57章 Zend_Reflection
  • 第58章 Zend_Registry
  • 第59章 Zend_Rest

  • 第60章 Zend_Search_Lucene
  • 第61章 Zend_Serializer
  • 第62章 Zend_Server
  • 第63章 Zend_Service
  • 第64章 Zend_Session
  • 第65章 Zend_Soap
  • 第66章 Zend_Tag
  • 第67章 Zend_Test
  • 第68章 Zend_Text
  • 第69章 Zend_TimeSync
  • 第70章 Zend_Tool
  • 第71章 Zend_Tool_Framework
  • 第72章 Zend_Tool_Project
  • 第73章 Zend_Translate
  • 第74章 Zend_Uri
  • 第75章 Zend_Validate
  • 第76章 Zend_Version
  • 第77章 Zend_View
  • 第78章 Zend_Wildfire
  • 第79章 Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 70.6% Update 2010-11-28 - Revision 23415

    32.4. RSS フィードの使用

    RSS フィードの読み込みは、フィードの URL を指定して Zend_Feed_Rss のインスタンスを作成するのと同じくらい簡単です。

    $channel = new Zend_Feed_Rss('http://rss.example.com/channelName');

    フィードの取得時にエラーが発生した場合は Zend_Feed_Exception がスローされます。

    フィードオブジェクトを取得すると、標準的な RSS の "channel" プロパティに対して直接アクセスできるようになります。

    echo $channel->title();

    関数の構文に注意しましょう。"getter" 方式の構文 ($obj->property) をした場合は、Zend_Feed はプロパティを XML オブジェクトとして扱います。 一方、メソッドの構文 ($obj->property()) を使用した場合は文字列として扱います。 これにより、特定のノードを取得したあとで、さらにその子要素にもアクセスできるようになります。

    チャネルのプロパティが属性を保持している場合、PHP の配列構文を使用してそれらにアクセスできます。

    echo $channel->category['domain'];

    XML の属性は子を持つことができないので、 属性値へアクセスする際にメソッド構文を使用する必要はありません。

    たいていの場合は、フィードをループさせたうえで、 個々のエントリに対して何かをすることになるでしょう。 Zend_Feed_AbstractPHPIterator インターフェイスを実装しているので、 例えばチャネル内の全記事のタイトルを表示するには単にこのようにするだけです。

    <?php <?php
    foreach ($channel as $item) {
        echo 
    $item->title() . "\n";
    }

    RSS にあまり詳しくない方のために、RSS チャネルおよび個々の RSS アイテム (エントリ) で利用できる標準的な要素をまとめます。

    必須のチャネル要素

    • title - チャネルの名前

    • link - チャネルに対応するウェブサイトの URL

    • description - チャネルについての説明

    よく使用されるオプションのチャネル要素

    • pubDate - コンテンツの発行日を RFC 822 の日付書式で表したもの

    • language - チャネルで使用している言語

    • category - チャネルの所属するカテゴリ (複数の場合は複数のタグで指定)

    RSS<item> 要素には必須要素はありません。 しかし title あるいは description が存在しなければなりません。

    よく使用されるアイテム要素

    • title - アイテムのタイトル

    • link - アイテムの URL

    • description - アイテムの概要

    • author - 著者のメールアドレス

    • category - アイテムが所属するカテゴリ

    • comments - このアイテムに関連するコメントの URL

    • pubDate - アイテムの発行日を RFC 822 の日付書式で表したもの

    要素が空要素であるかどうかは、以下のようにして調べられます。

    if ($item->propname()) {
        
    // ... 続行できます
    }

    $item->propname 形式を使用した場合は、 空のオブジェクトについても TRUE と評価されてしまうので、 このように調べることはできません。

    詳細な情報は、 http://blogs.law.harvard.edu/tech/rss にある RSS 2.0 の公式仕様を参照ください。

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...