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で表示
?>
とりあえず簡単な例ですが、いろいろと応用できそうです。一応エスケープ文字にも対応していました。ただし、日本語への変換がどこまで出来ているのかは使って見なければ分かりません。
PHPで配列の勉強
久しぶりにPHPで配列の勉強をした。
目次などの表示を列表示で大項目-小項目-小項目というようなデータの表示を考えていました。いわばツリー状なデータの項目表示で、ホームページのメニュー表示をPHPの配列で表示できないかということです。
例えば、
コンピューター(大項目)
- アップル
- 九十九電機
- エプソンダイレクト
- DELL
というようなメニューを配列を使ってPHPで表示したかったのです。
データの登録方法などいろいろ試行錯誤した結果、データ1行に大項目と小項目を書き込んだら配列で表現できるということが分かりました。
例えば、
<?php
$data=(“コンピューター,アップル,九十九電機,DELL,エプソンダイレクト,ヒューレットパッカード”);//先頭に大項目を、次から小項目を書き込む
$data=explode(“,”,$data);
$daikoumoku=$data[0];
$count=count($data);
print($daikoumoku);//ここで大項目$data[0]を書き出す
print(“<ol>”);
for ($i=1; $i<$count; $i++)//dataの2項目$data[1]から項目数より一つ少ない$data[5]までひとつずつ書き出します
{
$syoukoumoku=$data[$i];
print(“<li>”);
print($syoukoumoku);
print(“</li>”);
}
print(“</ol>”);
?>
というようにです。
なお、まだまだ勉強中なのでおかしなところがあるかも分かりませんがご容赦を。
時事評論家増田俊男さんの時事直言
参議院選挙が民主党の圧勝で終わった後、続投を表明した安倍総理と自民党について時事評論家増田俊男さんの時事直言が緊急国会議員号を出した。増田さんは、今世の中を動かしている資本の論理から時事を読み解く名人なので、参考になります。
とても過激な内容なので、こちらのブログには引用しません。
これから日本はどうなるのでしょうか。