PHPでRSSから情報を取得して表示する方法

あるブログの新着記事を、他のサイトで表示する必要があり、PHPのSimpleXML関数を使い対応しました。今回はその方法を紹介します。

使用する関数一覧

simplexml_load_file
XMLファイルをパースし、オブジェクトに代入する
PHP: simplexml_load_file – Manual

読み込むRSS

http://daisukebe.net/feed/
今回はこのブログのRSSを読み込みます。WordPressの設定でRSSのバージョンは2.0、最新の投稿10件表示にしてあります。

RSSから情報を取得し、表示する

まずは、simplexml_load_file関数で、どのような値が返ってくるかを確認してみます。

コード

<?php
  $rss = simplexml_load_file('http://daisukebe.net/feed/');
  print_r($rss);
?>

出力結果

出力結果を見る

RSSの情報が、SimpleXMLElement Objectに代入されています。これで例えば、ブログのタイトルへは$rss->channel->titleでアクセスすることが可能になります。


では次に、本来の目的である「RSSから取得した情報より、タイトルとURLを取得し、リスト表示する」ための作業に移ります。

コード

<?php
  $rss = simplexml_load_file('http://daisukebe.net/feed/');
  echo '<ul>';
  foreach($rss->channel->item as $item){
    echo '<li><a href="' . $item->link . '">' . $item->title . '</a></li>';
  }
  echo '</ul>';
?>

出力結果

出力結果を見る

このブログの最新記事10件が、表示されているはずです。

解説

まず、simplexml_load_file関数でRSSを解析し、オブジェクトに代入します。

次にforeachで繰り返し処理。$rss->channel->itemから値を取り出し、$itemへと代入し、$item->linkでURL、$item->titleでタイトルを出力します。

作業はこれで完了です。