November 2012
November 26, 2012
RSSを取得する方法
ブログのRSSを取得する方法。
いくつかあるんだけど、PEARのモジュールを使うことにした。
ざっくり説明すると、
<span style="color: rgb(51, 0, 255);">・PEARのXML_RSSとXML_Parserをインストール
・vendors/PEAR/XML 配下に上記ファイルをコピー
・vendors/PEAR 配下にpear.ini.php 作成</span>
を準備して、RSSのURLを渡してcontrollerで読み出すだけ。
⇒詳しい方法はこちら。
かなりラクチンです。
例えばこのblogのRSSをとると、こんな感じ。
<span style="color: rgb(102, 255, 51);">Array
(
[0] => Array
(
[link] => http://ringrossa.blog10.fc2.com/blog-entry-49.html
[title] => iPhoneのプレステ
[description] => といっても違法なソフトとかそういうんではなく。iPhoneのケースの・・・
[dc:subject] => 雑記
[dc:date] => 2009-08-08T21:00:04+09:00
[dc:creator] => Kai
[dc:publisher] => FC2-BLOG
)
[1] => Array
(
・
・</span>
こんな感じで色々なブログからRSSを取得してたところ、
日付がとれるブログと取れないブログがある。
確認したら、RSSのバージョンによって違うと。。
<span style="color: rgb(51, 0, 255);"> RSS1.0
<dc:date>2009-08-08T21:00:04+09:00</dc:date>
RSS2.0
<pubdate>Mon, 17 Aug 2009 19:18:02 -1000</pubdate></span>
だから、以下のように変換。
<span style="color: rgb(51, 0, 255);"> if(isset($item["dc:date"])){
$tmpData['date'] = preg_replace('/T|[\+Z].+/', ' ',$item["dc:date"]);
}else{
$tmpData['date'] = date('Y-m-d H:i:s',strtotime($item["pubdate"]));
}</span>
ちょっとベタだけど。