2009-08-19 33 views
1

我正試圖觀察一個文件被修改在一個長時間運行的PHP腳本。的基本算法是這樣的:如何在php腳本中觀看mtime更改?

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

問題是filemtime返回相同的值withing相同的腳本,例如如果一個腳本運行了10分鐘,它將總是獲得相同的修改時間,而不管在同一個腳本中對文件做出的實際更改或其他方式。

請幫忙提供關於如何實際獲取最新修改時間的建議?

回答

2

http://php.net/clearstatcache看看:

當使用stat(),LSTAT(),或在受影響函數表(見下面)中列出的其他功能,PHP緩存的功能,以便返回信息提供更快的性能。但是,在某些情況下,您可能需要清除緩存的信息。

編輯:你想讓它運行一個特定的操作系統嗎?然後會有其他通知的可能性(可能需要別的東西比PHP)。

+0

是的,調用'clearstatcache()'是有用的,非常感謝。 – zzandy 2009-08-19 09:50:02