2012-01-22

PHPでRSSフィードの自動生成

PHPでRSSフィードを自動生成する方法です。
FeedCreatorという便利なPHPのライブラリがあるので、これを利用すればRSSフィードを自動生成できます(xmlファイルを生成する)。

ただし、日本語に対応したりワーニング表示を消したり、MySQLなどのデータベースから簡単に使うために若干のライブラリ修正が必要です。

下記はver 1.7.2ベースでの修正方法の説明です。

・タイムゾーンのデフォルト設定を日本(+9.00)に変更
172行目:define("TIME_ZONE","+09:00");

・FeedCreatorクラスに変数が定義されていない不具合の修正
477行目あたりに追加:var $cssStyleSheet = "";

・デフォルトの文字コードをUTF-8に変更
496行目:var $encoding = "utf-8";

・日付フォーマットをMySQLのDateフォーマットに変更(FeedDateクラス)
742行目:if (preg_match("~(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})(.*)~",$dateString,$matches)) {
オリジナルは、日付と時間の間にTがあるのですが、そこを空白に修正。そうするとMySQLから取得したDateフォーマットの後ろに"+0900"を付加して渡せば正しい時刻で認識できるようになります。

RSSフィードを生成したときは、そのHTMLに下記のコードをheadに挿入しておけば、ブラウザがそのHTMLをリードしたとき、同時にRSS情報を自動認識してくれます。
(下記はfeed/index.xmlにRSSフィードを自動生成している場合)
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="/feed/index.xml" />

No comments:

Post a Comment