PHP日志解析器(读取文本文件)

时间:2011-06-22 13:21:47

标签: php

我有一个日志文件,假设它是任何文本(txt)文件。

我正在使用php和执行功能来阅读它。

虽然时间间隔不固定,但日志文件大多每10秒更新一次,因为普通日志文件会正常。我准备好延迟展示结果。

一种方法是使用cron作业(每10-20秒刷新一次脚本看起来很奇怪)。

假设同一服务器上的日志文件和php文件

我有自己的专用服务器Ubuntu

有谁可以告诉我一种方法,我可以通过它读取文件?

只要文件发生变化,或者我必须使用python / java或其他语言,就会执行像php文件这样的事情吗?

如果答案仍然坚持cronjobs如何在我的Ubuntu服务器中添加它们(我有php作为apache模块)?

由于

2 个答案:

答案 0 :(得分:1)

$fp = fopen('/path/to/log/file', 'r');
while (true) {
    $line = fgets($fp);
    if ($line === false) {
        echo "no new content, sleeping\n";
        sleep(3);
        fseek($fp, 0, SEEK_CUR);
    } else {
        echo $line;
    }
}

答案 1 :(得分:0)

您可以使用:

# tail -f log.txt

或在命令行上命名日志文件的任何内容。这将保留终端中显示的最后几行。您还可以指定要显示的行数,例如

# tail -n 100 -f log.txt