我从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中的行为相同。
正在缓存结果:http://php.net/manual/en/function.filemtime.php
注意:此函数的结果是缓存的。有关更多详细信息,请参阅clearstatcache((。
听起来Windows正在进行一些写缓存。。。
另一方面,stat((有一个额外的注释:
注意:
请注意,时间分辨率可能因文件系统而异。
也许值得检查统计输出。
编辑
也许这是一个错误,或者Windows玩得不好,但你也可以用显示DTM的Windows命令来执行shell_exec
。
新闻:这是我的应用程序中的一个普通错误。我复制了我的Ajax调用,忘记编辑它以应用于测试文件。因此,它应用于我的一个应用程序文件,而DTM只有在我编辑该应用程序文件(FTAdjust.js(时才更新
当我指定正确的测试文件时,每次在另一个过程中编辑DTM时,它都会更新得很好。
有时很难找到自己的虫子,即使它盯着别人的脸!我一直在寻找其他地方,但错误在哪里。
有没有办法从Stack Overflow中删除线程,因为它与其他线程无关?