2013-07-24 143 views
1

我在編寫PHP腳本時遇到了一些麻煩,只有在.txt文件中的值更改時纔會更新。會發生什麼情況是VB表單可以更改.txt文件中的值,PHP腳本會根據.txt文件中的值顯示圖像。目前腳本會顯示更新的文件,如果我手動點擊瀏覽器刷新,但我想消除。我曾嘗試使用元刷新標記,但因爲我正在渲染圖像,所以當頁面每隔2秒刷新一次並使頁面無法看到時,該頁面非常「顛簸」。我試圖做的是在$ string和$ string2變量之間創建一個循環,這樣當它們不相等時,它會將頁面重定向到一個頁面,該頁面會重定向到此頁面並執行「後門」刷新。 $ string是.txt文件中的直接值,它是在循環中定義的,而$ string2是在循環外部定義的。一旦將一個不同的值輸入到.txt文件,我會循環查看它們之間的差異。PHP自動刷新

謝謝大家提前。

<?php 
{ 
$file=fopen("counter.txt","r"); 
$string=fgetc($file); 
fclose($file); 
} 

$string2 = $string; 
    if ($string == '1') { 
     $files = glob('tg.jpg'); 
     foreach($files as $file) { 
     echo '<img src="' . $file . '" />'; 
     }} 
    elseif ($string == '2') { 
     $files = glob('tr.jpg'); 
     foreach($files as $file) { 
     echo '<img src="' . $file . '" />'; 
     }} 
    elseif ($string == '3') { 
     $files = glob('wua.jpg'); 
     foreach($files as $file) { 
     echo '<img src="' . $file . '" />'; 
     }} 
    elseif ($string == '4') { 
     $files = glob('wur.jpg'); 
     foreach($files as $file) { 
     echo '<img src="' . $file . '" />'; 
     }} 
    elseif ($string == '5') { 
     $files = glob('stop.jpg'); 
     foreach($files as $file) { 
     echo '<img src="' . $file . '" />'; 
     }} 
    elseif ($string == '6') { 
     $files = glob('base.jpg'); 
     foreach($files as $file) { 
     echo '<img src="' . $file . '" />'; 
     }} 

while ($string == $string2) { 
$file=fopen("counter.txt","r"); 
$string=fgetc($file); 
echo $string; 
fclose($file); 
} 

header('Location: redirect.php'); 
exit; 
?> 

回答

0

PHP只在運行時運行,所以你不可能做你剛剛描述的內容。

最好的辦法是創建一個非常小的PHP腳本,該腳本執行檢查並每秒在前端檢查上都有一個AJAX腳本,並在PHP返回它已更新時更新映像。

0

您正在嘗試使用服務器端腳本在客戶端執行某些操作。

您的客戶端頁面中是否包含一個小的JavaScript代碼段,該代碼段會將您的服務器回傳給可執行檢查的腳本。然後,如果您的腳本指示發生了更改,請使用Javascript刷新頁面。

這樣,頁面只會在需要時刷新,並且您可以輕鬆地將您的客戶端和服務器代碼分開。