<   2006年 04月 ( 1 )   > この月の画像一覧
PHPでRSSを表示させる
PHPのページ内にRSSを整形して埋め込み表示させたい。
そんな時はMagpieRSSを利用すると便利。
JavaScriptを使わないので、JavaScriptオフの環境でも問題ありません。

▼参考サイト
MagpieRSS - PHP で使える RSS パーサー。
※ページ下方にある数々のコメントも非常に参考となります。
Docodemo Headline
※記事の表示数を指定する方法も記載されています。(最新記事5つまで、など)

使う手順は上記サイトでわかりやすく書かれているので、こちらでは表示のプチ整形をしたい人向け情報を記載しておきます。

その1/記事の投稿日時も表示したい
もちろん、RSSに<dc:date>がある場合のみ有効。日付を取得/解析の上で整形されています。
Uta's Dream -どーらくにっき-: Magpie RSS

▼表示サンプル
2006/4/5 (水) 11:23
記事タイトル
-------------------------------------------------
日付だけで良い場合は、
${itemday} <a href=¥"$url¥" target=¥"_blank¥">$title</a>

▼表示サンプル
2006/4/5 記事タイトル
-------------------------------------------------
日付+曜日ならば、
${itemday}$youbi <a href=¥"$url¥" target=¥"_blank¥">$title</a>

▼表示サンプル
2006/4/5(水) 記事タイトル

その2/記事タイトルの文字数を制限表示したい(制限以上の文字は省略)
$title = mb_strimwidth($title, 0, 20, "...", sjis);

上の例は『最初の文字から数えて20バイト目(2バイト文字だと10字)まで表示し、あふれた分は「...」とする』…と言う感じです。
そして、EUC-JPならば sjis→euc にする。
応用として $title を $description に変えると概要の文字数制限表示に。

▼表示サンプル
2006/4/5 これは文字数制限内
2006/4/4 これは文字数制限を超... ←「超えます」の「えます」部分が省略

その3/掲示板のRSS、投稿者名も表示したい
投稿者名が何らかの要素として単体で出力されているなら簡単。
例えば、こちらのRSS出力付き掲示板CGI。
MT312 - PHPスクリプト/携帯対応掲示板 →RSS

<dc:creator>名前1</dc:creator>

と言うように単体で出力されているので利用してみます。
処理としては $title と同じ形で良いと思いますので、
$name = $item['dc']['creator'];
$name = JcodeConvert($name, "EUC-JP", "auto");

こんな感じで $title の近くに追加してあげれば良さそうです。
あとは表示させたい形に整形すれば出来上がり。
${itemday} <a href=¥"$url¥" target=¥"_blank¥" title=¥"from $name¥">$title</a>(by $name)

▼表示サンプル
2006/4/5 記事タイトル(by 名前1)
[PR]
by sozaifan | 2006-04-05 14:23 | PHP