PHP长轮询bug

时间:2014-04-13 22:59:47

标签: php long-polling

我正在尝试学习长轮询并且我正在使用以下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内容时它都没有做任何事情。

如果有人告诉我哪里出错,我会很高兴。

2 个答案:

答案 0 :(得分:4)

filemtime结果在运行时被缓存,因此您需要使用clearstatcache()显式重置它。

if之前运行。

答案 1 :(得分:1)

来自docs

  

注意:缓存此函数的结果。见clearstatcache()   了解更多详情。