2017-08-30 3 views
0

私はlog.txtという名前のファイルを持っています。これは常に別のプロセスによって新しいコンテンツを書きとめています(ここではpexpect )、私はページ全体の内容を表示したいと思います。新しいコンテンツが入ってくると、ページコンテンツも新しいコンテンツを表示しますが、tail -fと少し違いますが、コンテンツ全体を表示したいので少し違います新しいコンテンツが入ったばかりでなくはhtmlでリアルタイムでtxtコンテンツを表示します(私のWebサーバはPHPをサポートしていません)

+0

どのようなコマンドですか?どのようなデータのログ? HTMLはドキュメントを表すマークアップであり、線形に実行されたプログラムではありません。 – Brad

答えて

1

最も簡単な(そしておそらく最悪の)方法は、毎回ajaxリクエストを使ってダウンロードすることです。 jQueryのを使用して可能な実装の一つは、例えば次のようになります。

var logDownloader = { 

    fileContents:"", 

    init: function() { 
     $.ajax({ 
      url: "./logfile.txt", 
      async: false, 
      success: function (data){ 
       pageExecute.fileContents = data; 
      } 
     }); 
    } 
}; 

もう一つの方法は、ログファイルからテキストの唯一の「新鮮」の部分を返すことになるPHPスクリプトを呼び出すことになります。あなたが例えば使用できる行毎にファイルの読み取りの場合:

if ($file = fopen("file.txt", "r")) { 
    while(!feof($file)) { 
     $line = fgets($file); 
     //send your line 
    } 
    fclose($file); 
} 

をまた、ファイル全体を毎回送信しないようにするために最後に送信行の数を送信する必要があります。

一方、PHPに限定されない場合は、nodeJSとsocket.ioまたはいくつかのPythonスクリプトを使用することをお勧めします。私の意見では、もっと効率的です。

+0

こんにちはルーク、あなたはここでjqureyコード全体を投稿できますか?私はjqureyについて少し知っています。私はpythonスクリプトを使用すると、私の出発点はどこですか? socket.ioを使用すると、何かをインストールして動作させる必要がありますか? – Paul

+0

開始するには、https://www.w3schools.com/jquery/jquery_ajax_get_post.asp http://api.jquery.com/jquery.ajax/ https://www.tutorialspoint.com/のようなチュートリアルやドキュメントが必要です。 socket.io/このような目的のためにスタックオーバーフローが存在しないため、完全なコードを提供するつもりはありません。コピー&ペーストの完全なソリューションではなく、アイデアを得るのを手伝っています。 – Luke

関連する問題