simplexml

RSS読み込みに便利

PHP5で標準実装されたsimplexmlモジュールを利用すると、XML文書処理が手軽に実行できます。 ブログ等で良く利用されるRSS(really simple syndication)も、XML準拠なので、simplexmlを使って処理することができます。

simplexmlとは

simplexmlとは、XML文書を手軽に処理することができるモジュールです。 ブログ等で利用されるRSS(XML形式準拠)の読み込みや加工に便利です。 simplexmlはPHP5以降で利用可能です。

XMLファイルの読み込み

XMLファイルの読み込みには、simplexml_load_fileを用います。引数には読み込むXMLファイルを記入します。

$xmldata = simplexml_load_file("hogehoge.xml");

サーバー設定でallow_url_fopenが有効な場合は、ファイル名のところをURL(http://〜の形)で表記することができ、他サイトのRSS等を処理することもできます。 ただし他サイトのRSSを表示する場合はサニタイズ等のセキュリティ処理にも注意してください。

画面に表示

ブログの更新情報等をウェブに表示したい場合には、RSSファイルをsimplexmlで読み込んで、HTMLに整形して出力することができます。ブログ投稿(RSS更新)が最新情報に反映されるので便利です。

$rssdata = simplexml_load_file("myblog/index.rss");
foreach ($rssdata->channel->item as $rssrow) {
    print "<a href=\"";
    print $rssrow->link;
    print "\">";
    print $rssrow->title;
    print "</a>\n";
}

上記スクリプトでは、RSSファイルで各記事のデータがchannel->itemに格納されていることを利用しています。 環境によっては、channel->itemの部分がitemのことがあります。 titleはブログ記事のタイトル、linkはURLです。 他にも、description(記事の概要)、pubDate(投稿日時)等も取得できます。

表示する個数を決める場合は、例えば以下のようにします。

$rssdata = simplexml_load_file("myblog/index.rss");
for ($i=0; $i<5; $i++){
    print "<a href=\"";
    print $rssdata->channel->item[$i]->link;
    print "\">";
    print $rssdata->channel->item[$i]->title;
    print "</a>\n";
}

文字コードに注意する

RSSは、ほとんどのサイトでUTF-8で配信されています。 UTF-8以外のデータを読み込む場合は、文字コードをUTF-8に変換してから、表示するようにします。 (詳細は文字コードの変換を参照。)


※注意※上記スクリプトは、毎回RSSファイルを読み込み、画面に表示します。 アクセス数の多いウェブサイトに設置した場合、サーバー負荷が大きくなる可能性があります。

Copyright (C) 2003-2013. PHP で WEB 作成 All rights reserved.