$rss = simplexml_load_file("RSS1.0のURL"); $array = array(); foreach ($rss->item as $item) { $array[] = array('title'=>$item -> title,'url' => $item -> link,'date' => strtotime($item -> pubDate)); }
最初こんな感じで、RSSのデータを取得しようとしていたのですが、 dateの値がとれませんでした。
ソースを確認してみると日付が入っているのは、 pubDateはなく、dc:dateでした。
タグがわかったところで、dc:dateの値をとろうと、 とりあえずvar_dumpしてみたのですが、なぜかdc:dateの値がとれません。
調べてみると、「:」は名前空間を意味しているため、 「:」が含まれていると値の取得ができないそうです。
スポンサーリンク
childrenメソッドを呼ぶ
これを解決するには、 childrenメソッドの引数に下記URLを指定します。
http://purl.org/dc/elements/1.1/
具体的なソースはこんな感じです。
$rss = simplexml_load_file("RSS1.0のURL"); $array = array(); foreach ($rss->item as $item) { $dc = $item->children('http://purl.org/dc/elements/1.1/'); $array[] = array('title'=>$item -> title,'url' => $item -> link, 'date'=> strtotime($dc->date)); }