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」で取得する