2013年10月4日金曜日

PHPでRSSを簡単に生成できるFeedCreater

PHPでRSSを簡単に生成できるFeedCreater



Google ReaderがなくなってRSSが下火になってきている
なんて噂も聞きますが
RSSは非常に便利です。
更新情報をいちいちサイトにアクセスしなくても
feedlyなどのフィードを登録しておけば
まとめて情報を閲覧できます。

いろいろ更新があるWEBサイトをもっているなら
RSSを出力しておいたほうが訪問者が増加につながっていいとおもいます。

RSSを出力するにあたってPHPで簡単に出力できるクラスが
ありますので紹介します。



PHP クラスFeedCreater

こちらのページよりダウンロードできます。
http://feedcreator.org/


RSS生成例

ダウンロードした、ライブラリの中にある「feedcreator.class.php」を使用してRSSを生成する記述例です。

// 初期設定
define('TIME_ZONE', '+09:00'); //timezoneの設定
require_once '/path/to/feedcreator.class.php'; //feedcreator.class.phpへのパス

// 基本情報
$rss = new UniversalFeedCreator();
$rss->useCached();
$rss->title="フィードのタイトルを記述";
$rss->description="フィードの説明を記述";
$rss->link="http://フィードのあるサイトのURL/";
$rss->syndicationURL="http://フィードのあるサイトのURL/rss.php"; //このRSSのページURL


foreach($rssdata as $r){
 $item = new FeedItem();
 $item->title = $r['title'];
 $item->link = 'http://フィードのあるサイトのURL/' . $Ymd . '/' . $d['id'];
 $item->description = '';
 $item->date = strtotime($r['created']);
 $item->source = $r['domain'];
 $item->author = "フィードのタイトルを記述";
 $rss->addItem($item);
}

// RSS出力
$rss->outputFeed("ATOM1.0");


<追記>
こちらのサイトによると2点注意することがあります。
FeedCreator.class.php – PHPでRSSを出力する




UTF-8以外の文字コードエンコードを調整して文字化け対策

FeedCreatorはUTF-8を前提に作られているようで
EUC-JP、shit_jisなどで生成したxmlが文字化けが発生するそうです。

文字化け対策
ライブラリのエンコードを直接書き換えて
EUC-JPに変更してみます。

feedcreator.class.phpの497行目を修正します。
var $encoding = “ISO-8859-1″;

var $encoding = “EUC-JP”;

また、Atomの場合は1096行目も変更します。
$this->encoding = “utf-8″;

$this->encoding = “EUC-JP”;


タイムゾーンを日本時間に変更


FeedCreatorのデフォルトのタイムゾーンは、
UTC+1の中央ヨーロッパに設定されています。
ライブラリを直接、日本時間に書き換えてしまいましょう。
日本時間に変更
feedcreator.class.phpの159行目を修正します。
define(“TIME_ZONE”,”+01:00″);

define(“TIME_ZONE”,”+09:00″);




参考ページ

0 件のコメント:

コメントを投稿

関連時事

人気の投稿