php - 使用PHP更新带有txt文件内容的网页

标签 php javascript

我正在使用 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/

相关文章:

javascript - 验证数字是否为正数

javascript - 使用 AJAX 从 API 获取数据

PHP如何显示用户数据

php - 在 Web 服务器上执行()错误,但在本地服务器上没有错误

javascript - 在 node.js 中用一个模块替换另一个模块

javascript - 超出需要的循环触发

javascript - 有没有办法使用像 React 这样的前端框架在浏览器中运行 Python 脚本客户端?

php - JSON 将 Cyryllic 编码为 null

javascript - 如何禁用浏览器功能和快捷键进行全屏在线考试?

php - jQuery ajax 在每个函数中发布,每个函数都成功继续