我有一个程序将日志放入.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);}
}
答案 0 :(得分:2)
您的标题信息或元数据,浏览器在发送后用于重定向或刷新将无效。因为浏览器会将其作为一个页面读取,然后忽略其余部分。
您应该使用ajax代替,它将在后台调用php并检查文件大小的更改,然后调用浏览器刷新。
答案 1 :(得分:1)
正如Sid Malani所说,绝对应该使用AJAX。我怀疑在没有某种异步轮询的情况下可以完成这种事情。至少在浏览器环境中(由于浏览器的工作方式),在控制台上它根本不会很难。
现在,最简单的方法就是让页面每隔很多秒刷新一次HTML元刷新,无论日志文件是否实际发生了变化。
<head>
<meta http-equiv="refresh" content="20" />
</head>
如果您知道日志每隔几秒钟就会更新一次,那么它们是否已经改变大小并不重要,因为您可以打赌它们无论如何都有。