Как сделать PHP-скрипт синхронно обновлять из терминальных значений

Используя Raspberry Pi, я создал скрипт, который загружает температуру процессора Pi через сервер Apache в браузер.

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

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

echo $temp;

?>

Используя приведенный выше код, я должен вручную обновить страницу, чтобы увидеть последние значения.

Это прекрасно работает, но я хотел бы знать, как я могу настроить это без необходимости постоянно обновлять браузер.

В терминале на Пи я смог использовать команду «смотреть», которая будет давать мне текущее значение каждые 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 Script? Если нет, есть ли другой способ заставить его обновляться каждый раз, когда значение изменяется в терминале?

Замечания: Я новичок в программировании и использовании Пи.

Буду очень признателен за любую полезную информацию!

Заранее спасибо!

2

Решение

Часы не будут работать в вашем случае, вы можете позвонить в 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);
});
}
1

Другие решения

Я на самом деле нашел более простой способ установить это.
Я хотел не обновлять страницу вручную, чтобы получить текущие значения температуры.

Приведенные выше ответы были правильными, но я не смог самостоятельно их настроить, поэтому я решил, что могу добавить заголовок и обновить свой PHP-скрипт, который будет обновлять страницу каждую секунду (или в любое другое время).

Код выглядит сейчас так:

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

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

echo $temp;

?>

Спасибо всем, кто пытался мне помочь!

1

По вопросам рекламы [email protected]