nantekkotai achieves

過去書いたものの集積所。この場所が更新されることはない。

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