2011-06-22 15 views
0

ログファイルはテキスト(txt)ファイルであると仮定しています。PHPログパーサー(テキストファイルを読む)

私はphpを使ってそれを読み、機能を実行しています。

ログファイルは、ほとんどの場合、プログラムによって通常のログファイルのように10秒ごとに更新されますが、時間間隔は固定されていません。私は結果を示すのに少し時間を取る準備ができています。

1つの方法では、cronジョブを使用しています(これは、10〜20秒ごとにスクリプトを更新するにはかなり奇妙です)。

は、私は誰もが私に私は、ファイルを読み込むことができ、それを通して方法を伝えることができ

Ubuntuの

自分専用のサーバーを持って、同じサーバー

上のログ・ファイルとPHPファイルがあると?

PHPファイルのようなものは、ファイルが変更されたときに実行されるか、python/javaや他の言語を使用する必要がありますか?

答えがまだcronjobsに固執している場合、どうすれば私のUbuntuサーバーに追加できますか(私はApacheモジュールとしてphpを持っています)?

おかげであなたが使用することができます

+0

のように、表示する行数を指定することができます。どのようにログファイルを表示したいですか?ウェブページで? 「解析する」ことは何を意味するのですか、それともそれを見せたいだけですか?そうでなければ、 'readfile()'を使用する単純なスクリプトを書いてください – mario

+0

@marioよく私はreadfile()を使用できますが、私の質問はどのように私はPHPファイルをリフレッシュするのですか? – kritya

答えて

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; 
    } 
} 
+0

SSHを使ってこのファイルを実行する方法があるのですか、それともブラウザで開く必要がありますか? :D 私はそれをどのように私はそのファイルを開くことができますcuiウェブサーバーを持っているという意味ですか? 答えが美味しく見えますか?ありがとう – kritya

+0

あなたのサーバーにCLIバージョンのPHPがインストールされている場合は、 "/ path/to/php -f/path/to/script"または同様のコマンドを実行してください。これは決して終了しません - while(true)ステートメントはループを永遠にします。 –

+0

私はそれを見つけたときに私はそれがグッド感謝のグーグル:D – kritya

0

# tail -f log.txt 

または任意のログファイルは、コマンドラインで指定されています。これにより、最後の数行が端末に表示されます。また、あなたはいくつかの詳細を提供しながら、あなたの質問は非常に非特異的である

# tail -n 100 -f log.txt 
+0

PHPはどのように再生するのですか? とは何ですか? – kritya

+0

私はどのようにPHP自体をリフレッシュするのだろうか? – kritya

+0

PHPはログファイルに正しく書き込みますか?ページにアクセスしたら?ログファイルを監視しようとしているだけで、ログファイルをPHPページに表示しようとしていますか? – serialworm

関連する問題