【发布时间】:2012-12-02 02:29:37
【问题描述】:
我试图检测特定文件何时被修改,而不是轮询文件内容以查找更改。
服务器运行 Mac OS X,所以inotify 不可用。我的服务器允许使用exec()。
我怎样才能做到这一点?
【问题讨论】:
-
作为替代方案,您可以检查
filemtime以获取文件的最后一次修改时间,如果自上次调用以来它发生了变化,您可以假定文件已更改。 -
您可以在某个时间点对文件进行哈希处理以查看它是否已更改。但是,
filemtime的 CPU 开销要低得多。 -
php.net 提到 filemtime 的输出会被缓存,如果单个脚本在单个文件上多次使用 filemtime,则应调用 clearstatcache(),但会降低性能。跨度>
-
每条编程语句都会降低性能。谁在乎?
-
filemtime 似乎以秒为单位返回最后一次文件修改的时间(无论如何,在 OS X 上),这意味着如果文件在同一秒内被修改两次,则第二次修改被错过,这使得不适合经常修改的文件。
标签: php filesystems inotify