我正在尝试学习长轮询并且我正在使用以下PHP脚本:
<?php
$lastMod = filemtime('test.txt');
$counter = 10;
while ($counter > 0) {
if (filemtime('test.txt') !== $lastMod) {
echo file_get_contents('./test.txt');
exit;
}
$counter--;
sleep(1);
}
echo $lastMod;
但无论我做什么或尝试什么,当我在脚本执行期间更改test.txt内容时它都没有做任何事情。
如果有人告诉我哪里出错,我会很高兴。答案 0 :(得分:4)
filemtime
结果在运行时被缓存,因此您需要使用clearstatcache()显式重置它。
在if
之前运行。
答案 1 :(得分:1)
来自docs:
注意:缓存此函数的结果。见clearstatcache() 了解更多详情。