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 回答