Друзья, есть html страница, которая, в частности, выводит такую информацию: Код (Javascript): <h1>SENSOR 1</h1><hr><center>temperature: "+String(t)+ ". </center> (показывает переменную температуры ) и есть php скрипт, который должен эту переменную "вырезать" и заносить в БД. Не могу понять, почему не считывает, и заносит NULL. PHP: preg_match("/\<span id='temperature: '\>(.*)\<\/span\>/imsuU", $res, $matches); if(!empty($matches['1'])) { $sensor_temperature = "'".mysqli_real_escape_string($db, $matches['1'])."'"; } Спасибо
парсишь прогноз погоды ? --- Добавлено --- даже не буду говорить что ожидается массив место строки, так как парсинг/слизывание у своего соседа, не есть хорошо.
лол, нет. Стоят датчики в теплице, хочу сделать мониторинг через веб. Вот полный код: PHP: <?php $db_server = "192.168.14.102"; $db_username = "arduino"; $db_password = "arduinotest"; $db_database = "arduino"; $db = mysqli_connect($db_server, $db_username, $db_password, $db_database); if(!$db) { print "MySQL Error: ".mysqli_connect_error(); exit; } $sensors = array( array( 'name' => '#SENSOR 1', 'address' => 'http://192.168.14.104/', ), /*array( 'name' => '#2 (South)', 'address' => 'http://192.168.100.2/', ), array( 'name' => '#3 (West)', 'address' => 'http://192.168.100.3/', ), array( 'name' => '#4 (North)', 'address' => 'http://192.168.100.4/', ), array( 'name' => '#5 (Center)', 'address' => 'http://192.168.100.5/', ),*/ ); foreach($sensors as $num=>$sensor) { print "Request sensor ".($num+1)."/".count($sensors).": ".$sensor['name']." - "; $sensor_temperature = 'NULL'; $sensor_humidity='NULL'; $ctx = stream_context_create( array('http' => array('timeout' => 1) ) ); $res = @file_get_contents($sensor['address'], 0, $ctx); if($res) { print "ON"; //for debug //$res = "text<span id='temperature'>11.22</span>text<span id='humidity'>33.44</span>text"; preg_match("/\<span id='temperature: '\>(.*)\<\/span\>/imsuU", $res, $matches); if(!empty($matches['1'])) { $sensor_temperature = "'".mysqli_real_escape_string($db, $matches['1'])."'"; } preg_match("/\<span id='humidity:'\>(.*)\<\/span\>/imsuU", $res, $matches); if(!empty($matches['1'])) { $sensor_humidity = "'".mysqli_real_escape_string($db, $matches['1'])."'"; } }else{ print "OFF"; } print " = ".$sensor_temperature.", ".$sensor_humidity.".".PHP_EOL; $sql = "INSERT INTO `serenity` (`sensor`, `temperature`, `humidity`, `datetime`) ". "VALUES ('".mysqli_real_escape_string($db, $sensor['name'])."', "; $sql .= $sensor_temperature.", ".$sensor_humidity.", NOW()); "; mysqli_query($db,$sql); $error = mysqli_error($db); if($error) { print "MySQL Error: ".$error; exit; } } //foreach print "Done.";
Коллеги, а если я использую для разбора XML функции для работы с XML а не регулярные выражения - я становлюсь представителем разноцветных радужных меньшинств?