[PLUGIN] dumpプラグインが空のファイルを格納できない†
- ページ: BugTrack2
- 投稿者: 1
- 優先順位: 低
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2005-02-17 (木) 19:06:49
- バージョン: 1.4.5-1.4.5_1
メッセージ†
dumpプラグインでバックアップの対象となるファイルの中に0バイトのものがあるとRuntime errorと表示される。
エラーメッセージは以下の通り
Error message : wiki/0bytefile.txt is not found or not readable.
0bytefile.txtは実際に0バイトだったファイル名が入ります。
0バイトのページは削除すればいいですが、InterWikiNameページは削除できないので*1コメントを入れるなどして対応しています。
- BugTrack/701にて既知です。 --
- そうですね(既報というのは)。FrontPage、InterWikiNameなどのページを削除した直後にPukiWikiにアクセスすると、それぞれのページを touch() で作成するため、このような状況になります。 -- henoheno
- ご指摘ありがとうございます。1.4.5から標準のプラグインになったので試しに使ってみたのですが、まだ開発途上のようですね。このページの内容も含めてhenohenoさんのTODOが既にBugTrack/701でまとめられているので一旦クローズとした方が良いでしょうか? -- 1
- こんにちは :) このBugTrackの投稿者が1さんであるのかどうかが名前で判別できません・・・ (^^; *2少し様子を見てから、クローズとさせていただきたいと思います。 -- henoheno
- filesize()関数の戻り値を FALSEと比較するときに==演算子を使っているようです。ここを===演算子にすれば0バイトのときに引っかからなくなると思いますが。 --
diff -u -r1.34 dump.inc.php
--- dump.inc.php 23 Jan 2005 07:24:11 -0000 1.34
+++ dump.inc.php 3 Mar 2005 06:50:37 -0000
@@ -430,7 +430,7 @@
// ファイルサイズを取得
$size = filesize($name);
- if ($size == FALSE) {
+ if ($size === FALSE) {
@unlink($this->filename);
die_message($name . ' is not found or not readable.');
}
- コメントありがとうございます :) 確認しました。確かにその通りの様です。他の部分は(ちゃんと、意図的に) === 演算子を使っているようです。1さんの疑問が解決につながった様で何よりです :) -- henoheno
返り値としてFALSE だけでなく、FALSE として評価される 0 や "" などといった値を返す可能性もある関数†
readdir 関数†
- PHP関数:readdir によると、「この関数は論理値 FALSE を返す可能性がありますが、FALSE として評価される 0 や "" といった値を返す可能性もあります。(中略)。この関数の返り値を調べるには ===演算子 を使用してください。
」だそうです。
なので、while (FALSE != ($file = readdir($dp))) と同じ意味の、while ($file = readdir($dp)) を、while (FALSE !== ($file = readdir($dp))) と修正した方が無難だと思います。 --
2007-11-03 (土) 12:00:00 時点のCVS
lib\file.php(562): while ($file = readdir($dp))
lib\file.php(737): while ($file = readdir($dp))
plugin\attach.inc.php(821): while ($file = readdir($dir)) {
plugin\dump.inc.php(394): while ($filename = readdir($dp)) {
plugin\rename.inc.php(322): while ($file = readdir($dir)) {
- ChangeLog 2007-11-04 00:12
- コメント & ピックアップありがとうございます。この指摘は「関数の仕様通りに書きましょう」というものであり、このBugTrackのテーマとは異なりますので、後でもっといいページがあったならばそちらに移動しましょう。今のPukiWikiを普通に使っている分には、今回の修正がなかったとしても特段影響はないと思いますが、きちんと書くに越したことはありません。 -- henoheno
- 関連: BugTrack2/10 --
fgets 関数†
PukiWiki: file_head 関数†