我想用javascript和php在我的浏览器中拖尾文件,通过不断向服务器发送请求,然后服务器发送日志文件的最后一行。
首先。 - 我设置了日志文件,以便识别它的部分,时间,消息和消息类型。
e.g。 [T] 10:31:29 [/ T] [t]注[/ t] [P]这里有一些消息[/ P]
没有问题,我已经正确解析了。我的日志文件中的每一行都是这样的。
现在,我使用了一个函数,它返回日志文件的最后一行并将其抛给浏览器。
function get_last_line(){
$line = '';
$file = "logs/testlog(".date('m-d-Y').").txt";
$f = fopen($file, 'r');
$cursor = -1;
fseek($f, $cursor, SEEK_END);
$char = fgetc($f);
while ($char === "\n" || $char === "\r") {
fseek($f, $cursor--, SEEK_END);
$char = fgetc($f);
}
while ($char !== false && $char !== "\n" && $char !== "\r") {
$line = $char . $line;
fseek($f, $cursor--, SEEK_END);
$char = fgetc($f);
}
return $line;
}
用法示例
$str = get_last_line();
# returns [T]10:31:29[/T] [t]note[/t] [P]Some message in here[/P]
return json_encode(parse($str));
在这种情况下,我从文件的最后一行收到了一个对象,但这不太正确,因为它只返回文件的最后一行,并且在我之后的每一刻都不会显示文件中的每个日志可以访问“浏览器尾部”
立即
我认为我可以使用客户端的当前时间发送请求并返回与请求具有相同时间戳的所有日志。这是对的吗?我该怎么做?