MagpieRSSをいろいろ試して

PHPで使えるRSSパーサーのMagpieRSSをいろいろと試しています。
書かれているのがPHPなので、表示には、もちろん、PHPの関数が使えます。
たとえば、RSSの何項目もある<item>から7項目のみ表示させたいときは、

$rss->items = array_slice($rss->items,0,7)

array_sliceという関数が使えます。

問題は、日付の変換です。日付に関しては、いろいろな表現方法があるようで、変換もそのつど悩んでいます。(基礎がないので仕方がありませんが)。

あるサイトの日付の出力は、
<pubDate>Thu,15 Mar 2007 15:00:00 +0900</pubDate>

となっていて、この場合は

$date=$item[pubdate];
$daytime=date(“■Y年m月d日”,strtotime($date));
$daytime = JcodeConvert($daytime,0,1);

などとするとうまく変換されました。

また、あるサイトのRSSは、

<dc:date>2006-12-27T09:58+09:00</dc:date>

となっていました。この書式の年号の変換の仕方とdc:dateという書き方をどういうふうに変換したらいいのかわからず、いろいろ試してもエラーばかりでしたが、MagpieRSSを紹介していたサイトのコメントの中に答えがありました。

dc:dateは[dc][date]いうことと、MagpieRSSのユーティリティが使えそうなことが分かりました。こんな感じでうまく変換できました。

include_once ‘rss_utils.inc’;
$date=$item['dc']['date'];
$date=parse_w3cdtf($date);
$daytime=date(‘■Y年m月d日’,$date);
$daytime = JcodeConvert($daytime,0,2);

何かに書き留めておかないと忘れることもあるので、web作成メモとして残しておくことにします。


オフラインでPHPを

ホームページを作りたての頃は、サーバーがCGIにしか対応できていなかった。CGIを利用して見たいと思い、参考にしたのがKENTさんの「自宅マシンサーバ化計画 (Windows編)」 。説明どおりに「 AN HTTPD 」とActivePerlをダウンロードして、ローカルでCGIをテストしてサーバーにのせることができました。

このたび、サーバーがPHPに対応できたので、どうしてもPHPを動かして見たいと思い、WORDPRESSの参考書などを読んで、「APACHE」と「PHP」をダウンロードしてインストール。それでローカルでPHPは動作したのですが、サーバーを2個以上運営している私としては使いづらいのです。「ANHTTPD」のときは、オプション/一般を開けてドキュメントルートをローカルのディレクトリーに書き換えるだけなので使い勝手がいいと思っていましたから。そこで、。「ANHTTPD」でもPHPが使えないかと思っていたら、使えることがわかりました。参考にしたのは、

AN HTTPDPHPを動かす と

PHP超入門

WINDOWSなのでPHPをPHP.EXEで実行させるように設定して動作させることができました。PHP初心者なのでこういうサイトがあると助かります。


PHPで簡易データベースによるHP作成

PHPは、HTML表示が使いやすいので、ブロックを組み立てるような感覚で作成できるところが便利です。いろいろとPHP初心者向けのホームページをサーチしていたら、「アフリエイトのためのPHP入門講座」に行き当たりました。その中で、「 簡易データベースを作ってみよう 」というコーナーがあり、CSVファイルから、必要な項目を呼び出してHTMLを書き出しす方法がていねいに分かりやすく解説されています。これを応用すると、エクセルで情報を一元管理して、それを更新したとき、CSVファイルに変換してサーバーにアップするだけでいいので便利です。

とりあえず、試しに交通情報を作り変えて見ました。


WordPressのバージョンアップ

WordPressが2.12になったのでバージョンアップしました。

WordPressのプラグインを利用してのバックアップがうまくいかず、PHPmyAdminを利用してのバックアップも文字化けしているようで不安でしたが、まだ内容も少ないので書き込みのテキストだけ直接コピーして保存してバージョンアップしました。新しいバージョンを上書きインストールしてupgradeさせ、一応終了。カテゴリーの新規追加でいきなり文字化け。しかし、修正を加えるところで直ったり、少し不安定なところもあるようです。


PHPで使えるRSSパーサー

サーバーがPHPに対応できたので一番に考えたのがRSSを取得して岡山WEB上に表示することです。

検索エンジン等で調べたところ、MagpieRSS というパーサーがよく使われているようでした。

参考にしたのは、
http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS

サイトに RSS を埋め込む方法

http://njoy.pekori.to/tips/rss.shtml

です。特に、「サイトにRSSを埋め込む方法」では具体的な手法が、ダウンロードで手に入るので参考になりました。新しいバージョンでは文字化けするということでしたが、他に得られた情報では、rss_fech.inc の362行付近の
if ( !defined(‘MAGPIE_OUTPUT_ENCODING’) ) {
define(‘MAGPIE_OUTPUT_ENCODING’,'ISO-8859-1′);


if ( !defined(‘MAGPIE_OUTPUT_ENCODING’) ) {
define(‘MAGPIE_OUTPUT_ENCODING’,'UTF-8′);

とUTF-8に変更するとよいということでなので、実行したところうまくいきました。