RSSフィードの実装

Read More

システム話です


試験的にRSSフィードの機能を実装してみました。
#RSSチェッカーを通して文法もチェック済み

こんなのもらえたのでメニュー下においてみた


クライアントが色んなことを要望してくるのを想定し、
なんでも実装してみるのが私の性格です

ま、RSSの需要があるかどうかはおいといて^^;


--
で、文法に関してはいいのですが、
呼び出しのURIが若干マズイかもしれない

通常だとhoge.xmlとかhoge.rssとかそういう名前になるんだけど、
私のは拡張子の指定がなく かつGETパラメータを渡している

ま、拡張子がないのは良いのだけど、
GETパラメータがマズイ時がある、かも?


いいさいいさ、問題が起きたらまたいずれ別の方法を考えるさ


これがまともに売るシステムであれば、
cronとか使って定期的にバッチを走らせてxmlファイルを生成するとこかね

又は、拡張子が.rssのものをphpファイルとして扱うように設定入れたりとか?


今回はそこまでする気もないのでしばらくはこの形で配信してみよう


--技術メモ--
出力部分のプログラムはこんな感じ
<?php
function disp() {
  @ob_start();
  // ----------
  // xmlを作成し出力するループ
  // ----------
  $length = @ob_get_length();
  header('Content-Type: text/xml; charset=UTF-8');
  header('Content-Length: '. $length);
  exit;
}// end function
?>

Content-Length指定をしているのは、
ブラウザによってファイルを最後まで読み込まない場合があるから。

先にファイルのバイト数をヘッダー出力してやることで
ファイルを最後まで読み込むことができる。
このテクニックはCSSとかJSとかで出力する場合も必ず使う

なお、RSS2.0はRFC822の日付形式に対応しており、
幸いPHPにはRFC822に準じた日付出力変換が備わっているので今回はそれを使ってみた