如何让这个尾部功能与SESSIONS一起使用?

时间:2012-01-05 13:38:12

标签: php javascript jquery setinterval tail

我正在用PHP编写一个tail函数,并使用jQuery用日志中的任何内容刷新div区域。我在PHP中使用一个会话来保存文件指针,所以当再次调用PHP中的函数时,它会从setInterval(jQuery)中知道它停止的位置并打印文件末尾的新内容。出于某种原因,因为我开始使用会话,我无法看到它流向浏览器,直到任务完成。请帮我解决一下这个。谢谢!

这是我的jQuery:

setInterval(function() {
    $.get("ajax.php?function=tail", function(data) {
        $("#tail").append(data);
    }, 'html');
}, 2000);

这是我的PHP:

function tail() {
    $file = "/path/to/the/log/file.log";
    $handle = fopen($file, "r");

    if(isset($_SESSION['ftell'])) {   
        clearstatcache();
        fseek($handle, $_SESSION['ftell']); 

        while ($buffer = fgets($handle)) { 
            echo $buffer . "<br />";
        }   

        fclose($handle);
        $_SESSION['ftell'] = ftell($handle);        
    } else {
        fseek($handle, -1024, SEEK_END);
        $_SESSION['ftell'] = ftell($handle);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试使用http://php.net/manual/en/function.ob-flush.php

在回显后闪烁缓冲区