2011-12-13 110 views
1

我有一個將日誌放入.txt文件的程序,定期更新它們(每隔幾秒鐘)。當文件大小發生變化時刷新頁面

我想我的PHP腳本檢查這個.txt文件的大小,如果它改變了,刷新頁面。

這是我寫的,不按預期工作:

$filename = "log.txt"; 

if (file_exists($filename)) { 
    $dfile = filesize($filename); 
} 
echo $dfile; 

$c=0; 
while($c < 10) { 
if ($dfile !== filesize($filename)) {header("Location:http://127.0.0.1/parser.php");} 
else{usleep(2000000);} 
} 
+1

在回聲之後做一個頭......看起來很奇怪......請記住,必須在發送任何實際輸出之前調用header() – macjohn

+0

使用javascript,AJAX或setTimeout('window.location.refresh()',miliseconds )。 – Catalin

回答

1

正如Sid Malani所說的那樣,絕對應該使用AJAX。我懷疑沒有某種異步輪詢可以完成這種事情。至少在瀏覽器環境中(因爲瀏覽器的工作方式),在控制檯上它不會很難。

現在,最簡單的方法就是讓頁面每隔多少秒刷新一次HTML元數據刷新,而不管日誌文件是否已經改變。

<head> 
    <meta http-equiv="refresh" content="20" /> 
</head> 

如果您知道日誌每隔幾秒鐘更新無論如何,這並不重要,如果他們改變了大小與否,因爲你可以打賭,他們反正。

2

頁眉信息或瀏覽器使用重定向或刷新發送一次不會有任何效果的元數據。因爲瀏覽器會將其作爲一頁閱讀,然後忽略其餘部分。

您應該使用ajax來代替它,它會在後臺調用php並檢查文件大小的變化,然後調用瀏覽器刷新。

相關問題