我从一个来自JavaScript / HTML应用程序的POST执行的PHP文件调用filemtime() . 即使我使用文本编辑器编辑测试文件,它也会每两秒为单独的测试HTML文件返回相同的时间戳,我可以在本地文件系统中看到它的DTM更改 .
如果我重新加载整个应用程序(Ctrl F5),报告的时间戳保持不变 . 有时(4小时后一次)时间戳会发生变化,但我不知道是什么原因造成的 .
我的代码的PHP部分如下所示:
clearstatcache(true,$FileArg);
$R=filemtime($FileArg);
if ($R===false)
echo "error: file not found";
else
echo $R;
此代码由同步Ajax调用,仅使用其PHP文件名,每2秒使用一次setInterval .
Windows 10 Home,Apache 2.4.33在本地运行以进行HTTP访问,PHP 7.0.30 .
添加:
Firefox,Chrome,Opera和Edge中的行为相同 .
2 回答
结果正在缓存:http://php.net/manual/en/function.filemtime.php
这几乎听起来像Windows正在做一些写缓存......
另一方面,stat()还有一个注释:
也许值得检查统计输出 .
edit
也许这是一个错误,或者Windows不能玩得很好,但你也可以使用显示DTM的Windows命令来执行
shell_exec
.News :结果证明这是我应用中的普通错误 . 我复制了我的Ajax调用,忘了编辑它以应用于测试文件 . 因此它应用于我的一个应用程序文件而DTM仅在我编辑该应用程序文件(FTAdjust.js)时得到更新 .
当我指定正确的测试文件时,每次在另一个进程中编辑DTM时,DTM都会更新 .
有时甚至很难找到自己的错误,即使它盯着一个人!我一直在寻找其他地方,但错误在哪里 .
有没有办法从Stack Overflow中删除一个线程,因为它与其他人无关?