1

我在编写 PHP 脚本以仅在 .txt 文件中的值更改时才更新时遇到了一些麻烦。发生的情况是 VB 表单可以更改 .txt 文件中的值,而 PHP 脚本会根据 .txt 文件中的值显示图像。目前,如果我在浏览器上手动点击刷新,脚本将显示更新的文件,但我想消除它。我曾尝试使用元刷新标签,但因为我正在渲染图像,所以当它每 2 秒左右刷新一次时,页面非常“颠簸”,使查看页面变得难以忍受。我试图做的是在 $string 和 $string2 变量之间创建一个循环,以便当它们不相等时,它将页面重定向到重定向回该页面并执行“后门”刷新的页面。$string 是 . txt 文件,它在循环中定义,而 $string2 在循环之外定义。一旦将不同的值输入到 .txt 文件中,我将循环查看它们之间的差异。

谢谢大家。

<?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;
?>
4

2 回答 2

0

您正在尝试使用服务器端脚本在客户端执行某些操作。

让您的客户端页面包含一个小的 Javascript 片段,该片段将回传到您的服务器到可以执行检查的脚本。然后,如果您的脚本表明发生了更改,请使用 Javascript 刷新页面。

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

于 2013-07-24T16:58:53.513 回答
0

PHP 只在运行时运行,所以你不可能做你刚才描述的事情。

最好的办法是创建一个非常小的 PHP 脚本来进行检查,并在前端每秒检查一次 AJAX 脚本,如果 PHP 返回图像已更新,则更新图像。

于 2013-07-24T16:56:40.813 回答