PHPでのRSSの解析 | PHPやります!PHPでスクリプト/CGI作ります!

PHPでのRSSの解析

RSSについて

RSSには、いくつかのバージョンが存在するようです。
wikiを見ると、

RSS 0.9
RSS 0.91
RSS 1.0
RSS 2.0

ん~、迷う必要はなくRSS2.0を使うことに決定です。0,9なんて半端なバージョンなんて使わないよね。
1.0は、ちょっと対応した方がいいかな。とりあえず、2.0で作ります。

早速、アメブロのRSSを見てみます。

中見です。
rss
channel
title //ブログタイトル
link //ブログURL
description //ブログの見出し
language //言語(日本語 ja)
atom:link //RSSのURL

item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item


/channel
/rss

ついでに、FC2のRSSも見てみます。
rdf:RDF
channel
title
link
description
dc:language
items
rdf:Seq
rdf:li
rdf:li
rdf:li
/rdf:Seq
/items
/channel

item
link
title
description
content:encoded
dc:subject
dc:date
dc:creator
dc:publisher
/item
item
link
title
description
content:encoded
dc:subject
dc:date
dc:creator
dc:publisher
/item
/rdf:RDF


だいぶ違いますね・・・
FC2はRSS1.0みたいです。こりゃ、1.0から対応した方がよさそうです。
しかし、RSSのバージョンってどこみればわかるのかな。
見たかんじ、ルートノードがか、かでバージョン判断するしかないかな。

そんなことないねwXML/RSS使えば簡単に出来そうじゃん。
↓のコードでうまく取得出来そう。

require_once("XML/RSS.php");
$rss =& new XML_RSS("1.0.xml");
$rss->parse();

foreach ($rss->getItems() as $item)
{
echo $item['title']."\n";
}
echo "\n----------------\n\n\n";

$rss2 =& new XML_RSS("2.0.xml");
$rss2->parse();

foreach ($rss2->getItems() as $item)
{
echo $item['title']."\n";
}

実行結果
# php parse.php
【コーディング】ブログを簡単に見るヤツ8
【コーディング】ブログを簡単に見るヤツ7
【コーディング】ブログを簡単に見るヤツ6
【コーディング】ブログを簡単に見るヤツ5
ブログを簡単に見るヤツの予定
【コーディング】ブログを簡単に見るヤツ4
PHPのログ
【設計】ブログを簡単に見るヤツ5
PR: 【NEC】固定回線のない場所でFAX!?
【コーディング】ブログを簡単に見るヤツ3
【コーディング】ブログを簡単に見るヤツ2

----------------


【コーディング】ブログを簡単に見るヤツ8
【コーディング】ブログを簡単に見るヤツ7
【コーディング】ブログを簡単に見るヤツ6
【コーディング】ブログを簡単に見るヤツ5
ブログを簡単に見るヤツの予定
PR: 大手・注目の広告・Web会社の転職ならマスメディアン
【コーディング】ブログを簡単に見るヤツ4
PR: 大手・注目の広告・IT会社への転職ならマスメディアン
PHPのログ
【設計】ブログを簡単に見るヤツ5
【コーディング】ブログを簡単に見るヤツ3
【コーディング】ブログを簡単に見るヤツ2

途中に入る広告が気になる。。。