PHP文件时间()不工作-缓存问题



我从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中删除线程,因为它与其他线程无关?

最新更新