如何使 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;
?>
感谢所有试图帮助我的人!
我使用 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;
?>
感谢所有试图帮助我的人!