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] =&gt; Array
        (
            [link] =&gt; http://ringrossa.blog10.fc2.com/blog-entry-49.html
            [title] =&gt; iPhoneのプレステ
            [description] =&gt;  といっても違法なソフトとかそういうんではなく。iPhoneのケースの・・・
            [dc:subject] =&gt; 雑記
            [dc:date] =&gt; 2009-08-08T21:00:04+09:00
            [dc:creator] =&gt; Kai
            [dc:publisher] =&gt; FC2-BLOG
        )

    [1] =&gt; 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>
ちょっとベタだけど。



xseraarcy at 14:43|PermalinkComments(0)TrackBack(0) 技術的&べんり帳