PHPでRSSのフィードを取得する
ZendFrameworkにZend_Feedなるものがあるのでこれを使う。
require_once "Zend/Feed.php"; // 最新の TechCrunch ヘッドラインを取得します try { $feed = Zend_Feed::import('http://www.pheedo.jp/f/JapaneseTechCrunch'); } catch (Zend_Feed_Exception $e) { // フィードの読み込みに失敗しました echo "フィードの読み込み中に例外が発生: {$e->getMessage()}\n"; exit; } // チャネルデータの配列を初期化します $channel = array( 'title' => $feed->title(), 'link' => $feed->link(), 'description' => $feed->description(), 'items' => array() ); // チャネルの各項目をループし、関連するデータを保存します foreach ($feed as $item) { $channel['items'][] = array( 'title' => $item->title(), 'link' => $item->link(), 'description' => $item->description() ); } print_r($channel);
ほぼ公式サイトのサンプル通りだが、実は公式には罠があって、フィードのURLがスラドのままだと取得出来ない。
なぜならば、Zend_FeedがRSS1.0に対応していないらしからだ。
そういうわけで、次回はRSS1.0を取得出来るmagpieRSSについて書こうと思う。
PHPでRSS1.0のフィードを「magpieRSS」で取得する