Как сделать PHP-скрипт синхронно обновляющимся из терминальных значений - PullRequest
0 голосов
/ 08 февраля 2019

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

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

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

echo $temp;

?>

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

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

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

Код теперь выглядит так:

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

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

echo $temp;

?>

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

0 голосов
/ 08 февраля 2019

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