我正在尝试在长时间运行的php脚本中查看正在修改的文件。基本算法是:
...
$mtime = filemtime($filename);
sleep($delay);
if($mtime < filemtime($filename))
... // do something because file was changed elsewhere
问题是filemtime
使用相同的脚本返回相同的值,例如如果一个脚本运行了10分钟,它将始终获得相同的修改时间,无论在同一脚本中或通过其他方式对文件进行实际更改。
请帮助提供有关如何实际获得最新修改时间的建议?
答案 0 :(得分:2)
看看http://php.net/clearstatcache:
当您使用stat(),lstat()或受影响的函数列表(下面)中列出的任何其他函数时,PHP会缓存这些函数返回的信息,以便提供更快的性能。但是,在某些情况下,您可能希望清除缓存的信息。
编辑:您希望这是针对特定操作系统运行的吗?然后会有其他通知可能性(可能需要除了php之外的东西)。