はじめまして
前問のスクリプト拝見しました。
これは結局ディレクトリの更新時間を比較しているのですよね?
A1にファイルをアップしたとのことですが、FTPソフトで見た場合に
A1の更新時刻は変化しているのでしょうか?
これが変わっていなければ、表示される時間もリセットされません。
そういった環境的な要因が原因なのではないでしょうか?
あのプログラムはディレクトリに対して行われています。
ディレクトリ内のファイルを更新しても、ディレクトリの日時は更新されないという事です。
従って、あのプログラムでは目的を達成できません。
ファイルの更新日時を探るほうのプログラムで対応することになりますが、それはまた別の話なので、ここでは行いませんが、コメント欄にも書きました通り返事が無いのでどうしようもない状態です。
どの質問でしょうか
difmtime関数の処理を以下のように変更してみてください。
※2行コメントアウトして、代わりに2行追加しています。(変更点は、コード内のコメントを確認してください。)
function difmtime($path, $level=3) { $now = time(); $mtime = filemtime($path); $dtime = $now - $mtime; if (0 < $level--) { foreach (glob($path . "/*") as $file) { if (is_dir($file)) { $subtime = dirmtime($file, $level); //if ($dtime > $subtime) { if ($mtime < $subtime) { //※上記コメントアウトして代わりに追加※ //$dtime = $subtime; $dtime = $now - $subtime; //※上記コメントアウトして代わりに追加※ // printf("(%02d) %s %s<br />\n", $level, dhhmmss($dtime), $file); } } } } return $dtime; }
少ししか動作確認していませんが、おそらくこれで大丈夫だと思います。
あなたは神さまです
各ディレクトリごとに()
というのを別個に書いてありまして、それは更新されています。