Tech
Webシステムプログラマーによる、ちょっとためになる(かもしれない)情報共有ブログ
 

【第27回】PHPでRSSの内容を表示する

 
前回はPHPで単純なXMLファイルを読み込んで表示してみました。

今回はRSSの内容を読み込んで表示します。

RSSは、Webサイトの見出しなどを配信するXMLの形式です。

AtomというXMLフォーマットもよく使われています。

MagpieRSSを使うと簡単にRSSの内容の取得、表示ができます。


まずは、こちらのURLにアクセスしてMagpieRSSをダウンロードします。

http://magpierss.sourceforge.net/

DOWNLOADをクリックすると、MagpieRSSのダウンロード画面に遷移します。

ダウンロードしたあと、解凍します。

解凍をすると、たくさんのファイルがありますが、このうち、

extlib/Snoopy.class.inc
rss_cache.inc
rss_fetch.inc
rss_parse.inc
rss_utils.inc

を使います。

magpierssという名前のフォルダを作って、
これらのファイルを入れます。

magpierssフォルダを公開サーバのルートディレクトリに置きます。

もうひとつ、キャッシュ用のディレクトリ(cacheフォルダ)も作ります。
中身は空にしておき、パーミッションを777にしておきます。

それでは、プログラムを作ります。

rss.php
<?

// MagpieRSSの読み込み
require_once('magpierss/rss_fetch.inc');

// エンコード指定
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

// キャッシュ時間の設定
define('MAGPIE_CACHE_AGE', 60*5 );

// キャッシュ保存ディレクトリ指定
define('MAGPIE_CACFHE_DIR', 'cache/');

// 表示する件数の設定
$count = 5;

// 表示する文字数の設定
$length = 50;

// RSSのURLを指定する
$url = 'http://blog.promob.jp/fri/atom.xml';

// RSSのデータを配列で取得
$rss = fetch_rss($url);

// 表示する件数のデータ以外は削除
array_splice($rss->items, $count);

// 取得したデータをリストで表示
$html .= "<ul>\n";

foreach ($rss->items as $item) {

    // リンクURL
    $href = $item['link'];

    // タイトル
    $title = mb_convert_encoding($item['title'],"SJIS","auto");

    // 投稿日付
    $date = date('Y/m/d H:i:s',parse_w3cdtf($item['published']));

    $html .= "<li>\n";

    $html .= "<font color=\"#ff0000\">(" . $date . ")</font>\n";

    $html .= "<a href=$href>" . $title . "</a><br>\n";

}

$html .= "</ul>";

// htmlの表示
echo($html);

?>

これを実行すると・・・

1.jpg

のように表示されます。

リンクをクリックすると・・・

おお~っ!Fridayのブログ記事が表示されますね。

2.jpg

今回は、このFridayブログの記事のタイトルと登録した日付(published)、リン
ク(link)を取得して表示してみました。

RSSの内容によって$itemの内容を適宜変更する必要がありますが、とても簡単に
取得ができます。

はてなブックマーク、MovableTypeなどブログを持っている方はぜひやってみて
ください。

おしま~い。




トラックバック(0)

トラックバックURL: http://blog.promob.jp/mt/mt-tb.cgi/138

コメントする