1

我设置了一个非常小的(内部)专用 Web 服务器,我需要每 10 秒左右从 XML 文件中提取一些能源数据。这是我到目前为止的 PHP 代码:

 <?php 
    $mydata = simplexml_load_file('http://192.168.x.xx:yyy/data.xml');

    echo $mydata->device[0]->name;
    echo $mydata->device[0]->value;
 ?>

我在我的网络服务器上测试了类似的代码并安装了 PHP,我认为这应该可以工作,但我希望每 10 秒左右运行一次。这样,我的网页上显示的数据始终是最新的。该网页将作为墙上的标志全天候 24/7 运行。刷新数据最简单的方法是什么?

4

4 回答 4

4

我只需刷新使用Ajax显示数据的网页部分。使用JavaScript 计时器触发刷新。

于 2012-07-02T01:23:59.560 回答
2

最简单的方法?将此行添加到您的页面。

<meta http-equiv="refresh" content="10">

不过,这可能不是最好的方法,尤其是当页面上有很多不需要每 10 秒重新加载的内容时。如果是这种情况,您应该查看AJAX

如果您的页面设置只返回您需要的数据(如您的示例),您可以使用 JavaScript 每 10 秒发出一次异步请求setInterval(),以获取最新数据并显示它。

于 2012-07-02T01:25:42.607 回答
0

如果您通过浏览器运行它,那么我会选择 Eric 的答案。

但是,如果您从命令行运行此命令,则可以执行以下两种操作之一:

  1. 让您当前的脚本说 pull_energy_data.php 每 10 秒从 cron 作业运行一次。不要忘记创建某种锁定机制。以防万一作业运行时间超过 10 秒,并且您将同时运行多个脚本。

  2. 另一种方法是让脚本包装您的 pull_energy_data.php 在循环中运行并每 10 秒执行一次。这比以前的方法不太理想,因为您需要跟踪 pull_energy_data.php 上次运行的时间以及如何发出命令来停止包装脚本。

于 2012-07-02T01:46:57.520 回答
0

假设您在 Linux/Unix 中运行服务器,也许考虑为它编写一个 cronjob(自动作业)?

我能想到的一种解决方案是将 PHP 脚本作为 cronjob 每 10 秒运行一次,将输出写入文件或数据库表。

然后,您可以编写一个单独的 PHP 脚本,每当有人在浏览器中加载文件/数据库条目时,它就会读取它的内容。

于 2012-07-02T02:15:23.690 回答