1

長時間実行されているphpスクリプトでファイルが変更されているのを監視しようとしています。基本的なアルゴリズムは次のとおりです。

...
$mtime = filemtime($filename);
sleep($delay);
if($mtime < filemtime($filename)) 
     ... // do something because file was changed elsewhere

問題はfilemtime、同じスクリプトで同じ値を返すことです。たとえば、スクリプトがたとえば10分間実行されると、同じスクリプト内または他の方法でファイルに実際に加えられた変更に関係なく、常に同じ変更時間が取得されます。

実際に最新の変更時刻を取得する方法についてアドバイスをお願いします。

4

1 に答える 1

2

http://php.net/clearstatcacheを見てください:

stat()、lstat()、または影響を受ける関数リスト(下記)にリストされている他の関数のいずれかを使用すると、PHPは、より高速なパフォーマンスを提供するために、これらの関数が返す情報をキャッシュします。ただし、場合によっては、キャッシュされた情報をクリアしたいことがあります。

編集:これを特定のオペレーティングシステムで実行しますか?次に、他の通知の可能性があります(おそらくphp以外のものが必要です)。

于 2009-08-19T09:39:15.060 に答える