懸賞からインターネットのオトク情報まで、オトクをためすサイトためした。

懸賞からインターネットのオトク情報まで、オトクをためすサイトためした。 | ▲トップ  

RSSをWEBで表示する

最近何かと話題なRSS。このフィードをWEBで表示する方法がどうにもわからなかったので、調べてみました。

RSSはXMLというスクリプトで配布され、そのフィードをそのままWEBに反映させるには、XMLをHTMLに変換する必要がある。PHPやJavascriptで変換する方法が多いようだが、全くのトウシロなためしたにはどのページを見ても良くわからなかった。唯一理解できたのがmoondakotaさんの公開しているRSS FeedをJavascriptでウェブページに表示 (ベータ版)である。ところがスクリプトを良く見ると、フィードをゲットするたびにmoondakotaさんのサーバーへアクセスする必要があり、これはちょっと心が痛んだので、海外のサイトで探してみることにした。

RSS2HTML

RSS2HTMLというそのまんま名前を見つけることができた。RSS2HTMLはPHPのスクリプトとHTMLのテンプレートからなるファイルで、RSS2HTML.PHPにRSSの在り処を引数で渡すことによって、テンプレートのデザインを参照してページにRSSの内容を表示することが可能だ!設置も簡単、スクリプト部分は無改造、デザインはHTMLで可能という、まさしくトウシロためした向きなスクリプトだ!

RSS2HTMLの設置

まずはFeed4ALLにアクセス、ファイルをダウンロードする。とにかく無料であることを主張している文面だ。ありがたがりながら、DOWNLOADをクリック、rss2html.zipをダウンロードする。

中には本体である

  • rss2html.php
  • rss2html-doc.txt
  • sample-template.html

の3つのファイルが入っている。

まずは

rss2html.phpとsample-template.htmlをサーバーへアップロードする。サーバーはもちろんPHPが利用できる環境でなければならない。

実際の利用はrss2html.phpにアクセスする必要がある。以下のような書式で引数をつける

http://<your-domain>/rss2html.php?XMLFILE=<your-rss-feed>&TEMPLATE=<your-template>&MAXITEMS=<max-items>

<your-domain>

あなたのサーバーアドレス

<your-rss-feed>

rssフィードのアドレス

<your-template>

templateファイルの名前。デフォルトではsample-template.html

<max-items>

表示記事の最大数

上記の書式にしたがって、ブラウザのアドレスバーに入力してみるとページにズラリと最新記事が表示される。ちなみにこんなカンジ。

http://tamesita.docomo.us/rss2html.php?XMLFILE=http://slashdot.jp/slashdot.rdf&TEMPLATE=sample-template.html&MAXITEMS=20

ここで注意が必要なのが書式内に特殊文字が使えないこと。

% -> %2525
? -> %3f
& -> %26
= -> %3d
+ -> %2b
<SPACE> -> %20

例えば?のところは%3fと書き換えなければならない。ただしrss2htmlが扱う引数の中は逆に特殊文字を使わなければならない。上記で言うと、RSSのURL、TEMPLATE、MAXITEMをつないでいる&。これはそのままでよい。

ページに埋め込む

なんかもっとうまい方法があるような気がするんだけど、安直にiframeでページに埋め込んでみた。ソースはこんなカンジ。

<iframe src="http://tamesita.docomo.us/rss2html.php?XMLFILE=http://slashdot.jp/slashdot.rdf&TEMPLATE=sample-template.html&MAXITEMS=20"></iframe>

これを実際に埋め込むと以下のようになる。

うーん、イカス。

結論

ためしたがよくわからないのが、sample-template.htmlのテキストエンコーディングがUTF、ページ自体はShift-JISな状況。でもまぁ、ちゃんと表示されているから良いのかな?ためしにフォーラムに質問を投稿してみたら将来的に各エンコーディングに正式に対応するらしいので期待大といったところだ。

とにかく自己完結できるこのrss2html使えます。