Zend_FeedはRSSの読み書きを行うクラスです。
前MagpieRSSでRSSを読み込みましたが、MagpieRSS自体が微妙にバグあり状態で更新が止まってしまっているので、今から使用するのはお薦めできません。
Zend_Feedは扱いがやたら簡単なのでさっくりといじってみましょう。
Zend_Feed::importでRSSから読み込みを行い、Zend_Feed::importFileでローカルのXMLファイルから読み込みを行えます。
驚きなのがZend_Feed::findFeedsで、普通のHTMLファイルの<LINK>タグからRSSを探して読み込んでくれるという超便利メソッド。
サイトトップを指定しておけば、きちんとタグを設定してあるサイトならフィードのURLが変わったとしても一切修正の必要がありません。
とりあえず使用。
zend_feed1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//Zend_Feed
require_once('Zend/Feed.php');
//Feedインスタンス
$feed = Zend_Feed::import(
'http://yuubiseiharukana.blog.shinobi.jp/RSS/200/');
//$feed = Zend_Feed::findFeeds(
// 'http://yuubiseiharukana.blog.shinobi.jp/');
//各要素を取得可能
print($feed->title);
print($feed->language());
//イテレータは各エントリに対応
foreach($feed as $val){
print($val->title());
}
//要素の変更
$feed->title='タイトルを修正';
//修正したRSSを出力
$feed->send();
|
取得さえ成功してしまえば各要素には
$feed->title();
$feed->title;
とプロパティでもメソッドでも直接アクセスすることができます。
またフィードの改変を簡単に行うことができます。
$feed->title='タイトルを修正';
というふうに単に値を突っ込むだけで変更することが可能です。
ただ、何故か非対称なことに、メソッドを使って
$feed->title('タイトルを修正')
というふうには書けません。
他所のサイトのRSSフィードを取得して表示したいといった場合、とりあえずHTMLをさっさと表示して、RSSフィード部分をAJAXで自分のサーバにあるRSS取得スクリプトにリクエストを行い、PHPで適当にパースして返すといった方法で簡単にできます。
AJAXによるRSSフィード取得はクロスドメイン問題のせいで難しいので、一旦自サーバに投げてPHPからリクエストした方が楽です。
まあ、貼り付けるだけで簡単取得できるサービスがいっぱいあるんで、それをテンプレに貼り付けたほうがもっと手っ取り早いんですがね。
http://code.google.com/intl/ja/apis/ajaxfeeds/
http://www.moondakota.com/feed/index_s.php
http://zero-hl.ddo.jp/feed2js/build.php
PR
トラックバック
トラックバックURL: