2009-08-19 30 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