2017-08-30 46 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

Hi Luke,你可以在這裏發佈整個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

相關問題