我正在用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);
}
}