2013-07-24 101 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刷新页面。

这样,页面只会在需要时刷新,并且您可以轻松地将您的客户端和服务器代码分开。