文件大小更改时刷新页面

时间:2011-12-13 12:46:30

标签: php filesize

我有一个程序将日志放入.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);}
}

2 个答案:

答案 0 :(得分:2)

您的标题信息或元数据,浏览器在发送后用于重定向或刷新将无效。因为浏览器会将其作为一个页面读取,然后忽略其余部分。

您应该使用ajax代替,它将在后台调用php并检查文件大小的更改,然后调用浏览器刷新。

答案 1 :(得分:1)

正如Sid Malani所说,绝对应该使用AJAX。我怀疑在没有某种异步轮询的情况下可以完成这种事情。至少在浏览器环境中(由于浏览器的工作方式),在控制台上它根本不会很难。

现在,最简单的方法就是让页面每隔很多秒刷新一次HTML元刷新,无论日志文件是否实际发生了变化。

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

如果您知道日志每隔几秒钟就会更新一次,那么它们是否已经改变大小并不重要,因为您可以打赌它们无论如何都有。