Я наткнулся на какую-то проблему, и я надеюсь, что смогу получить какую-то помощь/указатель здесь, как ее преодолеть.
У меня есть внешний XML файл, который мне нужно проанализировать и отобразить в таблице. Я сделал это. Проблема в том, что файл обновляется каждую секунду, поэтому я хотел бы, чтобы данные в ячейках также обновляли "живые", в соответствии с изменениями в XML файле.
Проблема в том, что я не знаю, что я должен использовать для этого. Может кто-нибудь указать мне в правильном направлении.
<?php
require('simple_html_dom.php');
$html = file_get_html('http://admin:[email protected]/status.xml');
foreach($html->find('response') as $row) {
$frontdoorlock = $row->find('led1',0)->plaintext;
$reardoorlock = $row->find('led2',0)->plaintext;
$fronthandle = $row->find('btn0',0)->plaintext;
$frontdoor = $row->find('btn1',0)->plaintext;
$rearhandle = $row->find('btn2',0)->plaintext;
$reardoor = $row->find('btn3',0)->plaintext;
$temperature = $row->find('temp0',0)->plaintext;
$humidity = $row->find('humid0',0)->plaintext;
$currentdate = $row->find('temp2',0)->plaintext;
$lastpowered = $row->find('temp3',0)->plaintext;
}
?>
<div>
<table>
<tr>
<td>
Cabinet Name
</td>
<td >
Front Door Lock
</td>
<td>
Front Handle
</td>
<td>
Front Door
</td>
<td>
Rear Door Lock
</td>
<td>
Rear Handle
</td>
<td>
Rear Door
</td>
<td>
Temperature
</td>
<td>
Humidity
</td>
<td>
Current Date
</td>
<td>
System Last Powered
</td>
</tr>
<tr>
<td>
Cab1
</td>
<td >
<?php if($frontdoorlock == "0") echo "CLOSED";
else echo "OPEN";
?>
</td>
<td>
<?php if($fronthandle == "0") echo "CLOSED";
else echo "OPEN";
?>
</td>
<td>
<?php if($frontdoor == "0") echo "OPEN";
else echo "CLOSED";
?>
</td>
<td>
<?php if($reardoorlock == "0") echo "CLOSED";
else echo "OPEN";
?>
</td>
<td>
<?php if($rearhandle == "0") echo "CLOSED";
else echo "OPEN";
?>
</td>
<td>
<?php if($reardoor == "0") echo "OPEN";
else echo "CLOSED";
?>
</td>
<td>
<?php echo $temperature; ?>
</td>
<td>
<?php echo $humidity; ?>
</td>
<td>
<?php echo $currentdate ?>
</td>
<td>
<?php echo $lastpowered ?>
</td>
</tr>
Считаете ли вы интерфейсной платформой, как angularJs, которая поддерживает привязку данных? Связывание данных невероятно мощное, и я чувствую, что это будет идеальным решением для вашей проблемы. Здесь показано быстрое видео.
Вы можете привязать таблицу вывода к переменной, которая представляет эти данные, которая обновляется каждую секунду в соответствии с xml.
Если вы не хотите изменять логику самой страницы... как все делаете с помощью javascript. Вы можете просто поставить:
<META HTTP-EQUIV="refresh" CONTENT="15">
метатег в вашем HTML... тогда браузер обновит страницу каждые X секунд (это значение CONTENT).
Это простейшее решение для текущей ситуации.
Но я настоятельно рекомендую сделать это с помощью JavaScript. Там множество фреймворков, которые сделают для вас тяжелые вещи.
Мой личный фаворит: VueJS