どうも、コウイチです。

今回は、PHPでRSSフィードを取得して、ブログの更新情報を表示するプログラムを解説します。

※ここに書いたやり方は、自サーバーの php.ini の allow_url_fopen が On でないと駄目みたいです。

RSSフィードとは

RSSフィードとは、簡単に言うと「XML形式で配信される、Webページの更新情報」のことです。

ブログやWebサイトの多くがこの、RSSフィードというものを配信しています。

これを取得することで、リアルタイムでブログ等の更新情報を表示することができます。

RSSフィードを実際に見てみましょう

実際に見てもらった方が早いですね。

まずは、こちらをご覧ください。このブログが配信しているRSSフィードです。

このブログのRSSフィード

このように、ブログの更新情報が表示されました。

PHPでこれらの情報を取得することができれば、自分のブログや外部のブログの更新情報を、

リアルタイムで自分のサイトに表示することなどができます。

無料ブログでもRSSフィードが配信されているところは多いですし、WordPressでも配信されています。

取得したいRSSフィードのURLを調べる

準備として、取得したいRSSフィードのURLを調べる必要があるので、まずは調べます。

Internet Explorerの場合

コマンドバーのRSSフィードボタンから調べられます。

コマンドバーが無い場合は出してから、RSSフィードボタンを押しましょう。

Firefoxの場合

Google Chromeの場合

Google Chromeは、標準ではRSSフィードボタンがありません。

公式アドオンを入れればボタンは出ます。 ⇒ RSS Subscription Extension(by Google)

ただ見た感じ、RSSフィードのURLを調べられないみたいなので、IEかFirefoxを使うといいと思います。

 

 

RSSフィードのページが開けたら、アドレスバーに表示されているURLをメモしておいてください。

RSSフィードのXML構成を調べる

RSSフィードのXML構成を調べます。

どういうことかというと、今表示したRSSフィードページのソースを表示してください。

実際にはこのように、XML形式になっています。

今回は、「記事タイトル」、「記事URL」、「公開日時」、「記事説明」の4つを各記事ごとに取り出して、配列に入れたいと考えているので、これらの値がどのような構成になっているか見ます↓

見た感じ、channelタグの中に、各記事毎で titleタグlinkタグpubDateタグdescriptionタグ があるようです。

この4つのタグの中身を取り出せば良さそうですね。

配信されているRSSのバージョン等によって、構成が変わることがあるので、取得したいRSSフィードのXML構成は、しっかり確認しておきましょう。

PHPソースコード

それでは実際に、PHPでRSSフィードの情報を取得して、表示するコードを見ていきます。

割とシンプルに書けます。

lib.php(関数定義)

はじめに、指定したURLのRSSフィード(XML)を取得し、配列にして返す getRssFeedArray関数 を作成します。

1.simplexml_load_file 関数で、指定したRSSフィードのxmlデータを読み込みます。

引数に、ファイルとしてURLを指定しているので、サーバーの php.ini の allow_url_fopen が On でないと駄目みたいです。

2.foreach文で、xmlデータを配列に格納して返す。

という関数です。

以下がソース全文です。

printRSSFeed.php

それでは、上記で作成した getRssFeedArray関数 を呼んで、最新5記事の情報を取得して、表示してみます。

$rss_urlには、メモしておいたRSSフィードURLを入れてください。

実行結果

実行結果を見てみましょう!

こんな感じです。

これで、PHPを使ってRSSフィード情報を取り出し、表示することができました。

まとめ

PHPでRSSフィード情報を取り出すことができれば、あとは好きなように整形して、表示すればいいだけです。

是非、いろいろ試してみてください。

お疲れ様でした。