$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));
}
タイムスタンプの形で取得しないなら、
strtotime()を使用せずに、
'date'=> $dc->date
で、大丈夫です。