如何观察php脚本过程中mtime的变化?

发布于 2024-08-02 02:44:10 字数 387 浏览 6 评论 0原文

我正在尝试监视在长时间运行的 php 脚本中修改的文件。 基本算法是这样的:

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

问题是 filemtime 使用相同的脚本返回相同的值,例如,如果脚本运行 10 分钟,它将始终获得相同的修改时间,无论在 10 分钟内对文件进行的实际更改如何相同的脚本或通过其他方式。

请帮忙提供有关如何实际获取最新修改时间的建议?

I'm trying to watch for a file being modified in a long running php script. The basic algorithm is this:

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

Problem is filemtime returns the same value withing same script, e.g. if a script runs for say 10 minutes it will always get the same modification time regardless to actual changes done to the file within the same script or by other means.

Please help with an advice on how to actually get the latest modification time?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜还是长夜 2024-08-09 02:44:10

看看http://php.net/clearstatcache

当你使用stat()、lstat()时或受影响函数列表(如下)中列出的任何其他函数,PHP 会缓存这些函数返回的信息,以提供更快的性能。 但是,在某些情况下,您可能希望清除缓存的信息。

编辑:您希望它在特定操作系统上运行吗? 然后会有其他通知的可能性(可能需要 php 之外的其他东西)。

Take a look at http://php.net/clearstatcache:

When you use stat(), lstat(), or any of the other functions listed in the affected functions list (below), PHP caches the information those functions return in order to provide faster performance. However, in certain cases, you may want to clear the cached information.

edit: Do you want this to run for a specific operating system? Then there would be other notification possibilities (maybe requiring something else than php).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文