我正在使用 PHP 读取 .txt 文件,并将数据解析到网页中。 .txt 文件是显示我的服务器状态的本地日志文件,我目前可以读出最后一行并将其推送到我的站点。
但是,当我的服务器状态发生变化时,.txt 文件会在本地更新,但新值永远不会显示在网站上。
我使用 HTML5/Javascript 显示内容,使用 PHP 读取文件和解析/清理输入。我附加的代码段显示了我正在使用的 PHP 文件读取函数,每 10 秒运行一次。此段运行后,显示(我使用的是 HTML5 Canvas )刷新,但数据保持不变。显示仅在我手动刷新页面时更新。
是否可以每 10 秒左右轮询一次此 txt 文件,并将最后一行推送到我可以调用的变量中?
function getCurrentStatus() {
<?php
clearstatcache();
$myFile = "C:\available.log";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
$statusList = explode("\n", $theData);
$statusListLength = count($statusList) - 2;
$currentStatus = explode(" ", $statusList[$statusListLength]);
$previousStatus = explode(" ", $statusList[$statusListLength - 1]);
$myFile = "C:\std_server0.out";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
$garbageCollector = array_map('trim',explode("\n", $theData));
$garbageCollectorLength = count($garbageCollector);
?>
currentStatus = ["Latest Status:", "<?php echo $currentStatus[0]; ?>", "First Started:", "<?php echo $currentStatus[1]; ?>", "<?php echo $currentStatus[2]; ?>", "Last Checked:", "<?php echo $currentStatus[4]; ?>", "<?php echo $currentStatus[5]; ?>"];
latestGC = "<?php echo $garbageCollector[$garbageCollectorLength - 2] ?>"
}
最佳答案
这不起作用的原因是因为 JavaScript 在客户端的浏览器中执行,而 PHP 在服务器上执行。所以在初始加载中,您会得到您所期望的,因为在创建页面时,PHP 获取了该文件的内容。然而,在那之后,PHP 就消失了。
您可能需要考虑使用 AJAX 定期刷新内容。
关于php - 使用PHP更新带有txt文件内容的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053572/