如何使 PHP 脚本从终端值同步更新

How To Make a PHP Script Synchronously Update From Terminal Values

我使用 Raspberry Pi 创建了一个脚本,它通过 Apache 服务器将 Pi 的 CPU 温度加载到浏览器上。

<?php
$temp = exec('vcgencmd measure_temp');

$temp = str_replace('temp=','',$temp);
$temp = str_replace('\'C','',$temp);

echo $temp;

?>

使用上面的代码我必须手动刷新页面才能看到最新的值。

它工作正常,但我想知道如何设置它而不必一直刷新浏览器。

在 Pi 的终端中,我能够使用 "watch" 命令,它每 0.1 秒就会给我一个当前值。

但是通过执行这个脚本,浏览器会给我一个空白页面。

<?php
$temp = exec('watch -n 0.1 vcgencmd measure_temp');

$temp = str_replace('temp=','',$temp);
$temp = str_replace('\'C','',$temp);

echo $temp;

?>

有什么方法可以使使用 "watch" 命令的脚本与 PHP 脚本一起工作吗?如果没有,是否有任何其他方法可以让它在每次终端中的值更改时刷新?

注意:我是编程和使用 Pi 的新手。

如果有任何有用的信息,我将不胜感激!

提前致谢!

Watch 在你的情况下不起作用,你可以从官方网站调用 jquery cdn,然后执行此功能。不要忘记打开控制台查看返回的内容。 F12

将此添加到您的 php 文件中。

if(isset($_GET)){

$temp = exec('vcgencmd measure_temp');

$temp = str_replace('temp=','',$temp);
$temp = str_replace('\'C','',$temp);

echo $temp;
}

然后进入你的index.html

 $(function() {
    startRefresh();
});

function startRefresh() {
    setTimeout(startRefresh,1000); // 1000 represents 1 second, free to change
    $.get('index.php', function(data) { // i assume your index.php in same folder with your html file.
        console.log(data);
    });
}

我实际上找到了一种更简单的设置方法。 我想做的是不必手动刷新页面来获取当前温度值。

上面的答案是正确的,但我无法自己设置,所以我想我可以添加一个 header 并刷新到我的 PHP 脚本中,这将使页面每秒刷新一次(或任何需要的时间范围)。

代码现在看起来像这样:

<?php header('refresh: 1');
$temp = exec('vcgencmd measure_temp');

$temp = str_replace('temp=','',$temp);
$temp = str_replace('\'C','',$temp);

echo $temp;

?>

感谢所有试图帮助我的人!