You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP无限循环中实时读取文件创建时间等最新属性信息?

问题原因

PHP内核内置了文件状态缓存机制,首次调用filectime()、fileatime()、filemtime()这类文件元信息查询函数时,PHP会将对应路径的文件查询结果缓存到内存中,后续针对同一路径的同类调用会直接返回缓存值,不会重新读取磁盘的真实文件信息,即使文件被修改、删除也不会主动更新缓存。
你代码中对$file_path变量的销毁、重新赋值操作,完全不影响内核层面的缓存,所以不会生效。

修复方案

每次循环查询文件时间前,主动调用clearstatcache()函数清空文件状态缓存即可,修改后参考代码如下:

$file_path = "myimg.jpeg";
while (true)
{
  // 清空文件状态缓存,强制后续查询读取磁盘真实文件信息
  clearstatcache();
  echo "c:" . filectime($file_path) . " a:". fileatime($file_path) . " m:" . filemtime($file_path) . "\r\n";
  // 可选:增加休眠间隔,避免空循环占用过高CPU资源
  sleep(1);
}

内容的提问来源于stack exchange,提问作者Láďa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:36:00