[Blog Hacks:Hack#53PHPでPingサーバを作る]に関する指摘
2004.08.20 Friday 13:11
Blog Hacks私も購入しました。(Webサービス関係者には必須の書籍と思います)
感想は、別エントリに書きますが、その中で早速実装しようと思ったものにPingサーバを作るという項目があります。(国内にそんなにPingサーバいらないんでは?という意見は存じておりますが)
Changes.xmlの公開をそのまま実装しましたが、問題が2点ありましたので修正内容を指摘します。
・weblogUpdates の日付書式がおかしい
・Updateが1件もない場合、スクリプトエラーになる。
2点目は対応する必要がないのかもしれませんが(自分でPingしてから確認すればよい)、スクリプト自身の動作確認時に混乱したくないからです。
Blog hacks
宮川達彦著・伊藤直也著

出版社 オライリー・ジャパン
発売日 200407下旬
価格 ¥ 3,045(¥ 2,900)
ISBN 4873111749
bk1で詳しく見る
宮川達彦著・伊藤直也著

出版社 オライリー・ジャパン
発売日 200407下旬
価格 ¥ 3,045(¥ 2,900)
ISBN 4873111749
Webを使った最先端の情報発信技術として注目を集めるBlog。Blogのセットアップや運用、RSS、WebサービスAPIなどを利用したスクリプティングなど、テクノロジ面を中心にBlog関連の技術を掘り下げ紹介。 [bk1の内容紹介]
bk1で詳しく見る

感想は、別エントリに書きますが、その中で早速実装しようと思ったものにPingサーバを作るという項目があります。(国内にそんなにPingサーバいらないんでは?という意見は存じておりますが)
Changes.xmlの公開をそのまま実装しましたが、問題が2点ありましたので修正内容を指摘します。
・weblogUpdates の日付書式がおかしい
・Updateが1件もない場合、スクリプトエラーになる。
2点目は対応する必要がないのかもしれませんが(自分でPingしてから確認すればよい)、スクリプト自身の動作確認時に混乱したくないからです。
まず、http://ping.bloggers.jp/changes.xmlの書式にあわせます。
(*の行を修正します)
次にXMLで出力する個所(*の行を追加します)
件数が0件の場合、fetchRowでエラーとなります。
0件の場合でもXMLの出力は必要ですので、$countをチェックすることで回避できます。
(追記)BlogHackersレビューなどお寄せくださいとdh's memorandaにトラックバックさせていただきました。
(*の行を修正します)
$interval = 60*60*3; // 3 hours
$now = time();
* $GENERATED_DATETIME = gmdate("D, d M Y H:i:s T", $now);
$range = date("Y/m/d H:i:s", $now - $interval);
次にXMLで出力する個所(*の行を追加します)
件数が0件の場合、fetchRowでエラーとなります。
0件の場合でもXMLの出力は必要ですので、$countをチェックすることで回避できます。
header("Content-Type: text/xml; charset=UTF-8");
echo <<<HEAD
<?xml version="1.0" encoding="UTF-8" ?>
<weblogUpdates version="1" updated="$GENERATED_DATETIME" count="$count">
HEAD;
* if ($count > 0) {
$sql = "select * from fm_ping where timestamp > '$range' " .
"order by timestamp desc;";
$res = $db->query($sql);
if ($res) {
while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$title = htmlspecialchars($row['name']);
$when = $now - strtotime($row['timestamp']);
echo "<weblog name=\"$title\" url=\"{$row['url']}\" when=\"$when\" />\n";
}
}
* }
echo "</weblogUpdates>\n";
$db->disconnect();
(追記)BlogHackersレビューなどお寄せくださいとdh's memorandaにトラックバックさせていただきました。

Comments
クリックするとトラブルジンクス更新中
Comment Form