朝顔日記

memo.php 用の RSS を生成する何か

2005-01-30

URL をメモる何か は、タブ区切りのテキストでログを保存しているわけですが、このログから RSS 生成する PHP スクリプト、memo_rss.php も作ったのでこれも公開しておきます。

次のお楽しみ(何)のためには、なにはともあれ RSS を出しておかないことには話にならないので。(謎)

ところで、設定部分が、memo.php とダブるので別ファイルにしてインクルードしておいたほうがよかったかな。まぁ次はそうしよう。


<?php
header("Content-Type: application/xml; charset=utf-8");
// 設定
$log = "./memo.log";                // 保存するログ
$TZD = "+09:00";                    // タイムゾーン
$memo_title = "URI メモのサンプル";           // html のタイトル
$rss_discription = "簡単な説明つきで URI をメモする何かのサンプルの RSS";
                                    // RSS の説明
$lines = file($log);
?>
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:rss="http://purl.org/rss/1.0/"
xml:lang="ja">
<channel rdf:about="<?php print($rss); ?>">
<title><?php print($memo_title); ?></title>
<link><?php print($script); ?></link>
<description><?php print($rss_discription); ?></description>
<dc:date><?php print date("Y-m-d\TH:i:s", filemtime($log)).$TZD;?></dc:date>
<items>
<rdf:Seq>
<?php
foreach($lines as $line) {
  $line = rtrim($line);
  $items = explode("\t", $line);
  print("<rdf:li rdf:resource=\"".$items['1']."\"/>");
}
?>
</rdf:Seq>
</items>
</channel>
<?php
foreach($lines as $line) {
  $line = rtrim($line);
  $items = explode("\t", $line);
  $categories = explode(" ", $items['4']);
  print("<item rdf:about=\"".$items['1']."\">\n");
  print("<title>".$items['0']."</title>\n");
  print("<link>".$items['1']."</link>\n");
  print("<dc:date>".$items['3']."</dc:date>\n");
  foreach($categories as $category){
    print("<dc:subject>".$category."</dc:subject>\n");
  }
  print("<description>".$items['2']."</description>\n</item>\n");
}
?>
</rdf:RDF>

メモのほうの仕様変更に伴い tag を dc:sbuject を列記する形で出力するように追加

「memo.php 用の RSS を生成する何か」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事へのツッコミ

1: toshi (2006-05-21T01:33:54+09:00)
「memo.php 用の RSS を生成する何か」を少し改良させていただき,公開しました。

トラックバック

1: toss idea cube/「memo.php 用の RSS を生成する何か」をいじる (2006-05-21T01:26:19+09:00)
memo.php 用の RSS を生成する何かを少し改良してみたので,公開します。改良点・xml宣言を関数で出力(環境によっては出力できない現象に対応)・dc:titleの追加(多くのRSSリーダーで
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2005/01/diary_050130b.html