PHPで配列の勉強2-Feedcreatorを試用

CGIでRSSフィードを生成するのにはYUKI::RSSが簡単に使えることは以前このブログで紹介しましたが、PHPには、Feedcreatorという便利なライブラリーがありました。このライブラリーはLGPLなのでだれでも自由に使用できるものということなので試用して見ることにしました。

ダウンロードはSourceForge.netからです。

RSS 0.91/1.0/2.0、Atom 0.3/1.0などのフォーマットに対応しているので、好みのスタイルでフィードを作成することができます。デフォルトはRSS0.91でした。

まず、ダウンロードしてきたファイルのうち、ライブラリーは「feedcreator.class.php」ですが、日本語に対応させるため、672行あたりのvar $encoding = “ISO-8859-1″; のISO-8859-1をUTF-8に変更しました。サンプルのdemo.phpをみると、YUKI::RSSと同じようにライブラリーを読み込ませ、最初のブロック(//define channel)の部分でサイトのタイトル、説明、サイトURLなどの固定部分を書き込み、次のブロック(//channel items/entries)に記事を書きこんだらいいようです。//channel items/entriesのブロックにデータベースからデータを読み込む例がダウンロードしたファイルのofficial_demo.phpに書いてありましたが、そこまではまだ手が出ないので、CSVのようなデータファイルから配列を使って一行ずつ書き出すように考えて見ました。(配列の勉強です)

1、データファイルの準備
ファイル名 data.txt(UTF-8で保存)
内容:
111111,aaaaaaa
22222,bbbbbb
33333,cccccccc

こんなデータを作って保存。今回は文字の変換を考えないように、エンコードをUTF-8で保存。

2、RSSフィードを作成するためのPHPプログラムを以下のように作ってみました。

< ?php
define(’TIME_ZONE’,‘+09:00′);//日本時間に変更
require_once ‘include/feedcreator.class.php’;//設置場所のパスを指定
$rss = new UniversalFeedCreator();
$rss->useCached();
$rss->title = ‘新着情報’;
$rss->description = ‘岡山WEBサーチの新着情報です’;
$rss->link = ‘/’;
$rss->syndicationURL = ‘/***.xml’;

//データファイルから記事を読み出す
$file_data=file(”data.txt”);
//複数行に渡るファイルの内容を読み出す
foreach($file_data as $value){
   list($title,$body) = split(”,”,$value);

$item = new FeedItem();
$item->title=$title;
$item->link = ‘/’;
$item->description =$body;
$item->author = ‘okayamaweb’;

$rss->addItem($item);
}

//$rss->saveFeed(’RSS2.0′,’sample.xml’);
$rss->outputFeed(’RSS2.0′);//RSS2.0を空欄にすると0.91で表示1.0と記入するとRSS1.0で表示
?>

とりあえず簡単な例ですが、いろいろと応用できそうです。一応エスケープ文字にも対応していました。ただし、日本語への変換がどこまで出来ているのかは使って見なければ分かりません。

コメントを受け付けておりません。

    自己紹介

    岡山WEBサーチは、岡山県産および岡山に関するホームページの集う港を(ポート)コンセプトとして生まれました。

    続きを読む

    検索

We love WordPress
One in a Million Theme by WordPress theme