powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / cURL, регулярные значения и запись в БД
11 сообщений из 11, страница 1 из 1
cURL, регулярные значения и запись в БД
    #38703307
Divest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем постоянные данные на странице HTML, вида:
28FF820410140093:25;28FFE90310140074:24.50;28FFE90310140081:21;
где первое значение, адрес 1 датчика. Второе, его показания. В данном примере датчиков, в реальности их количество разнится от 1 до 10
После парсинга данной страницы, на выходе получаем:
28FF820410140093 - 25.00
28FFE90310140074 - 24.50
28FFE90310140081 - 21.00
Парсинг осуществляется следующим кодом:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?             
$ch = curl_init();
curl_setopt_array($ch, array(
        CURLOPT_URL=>'http://255.255.255.254/getdev', 
        CURLOPT_RETURNTRANSFER=>true
));
$data = curl_exec($ch);
               
               
$dats = explode(';',$data);
foreach($dats as $dat){
   if(strpos($dat,':')===false)continue;
   $addrs = explode(':',$dat);
	echo $addrs[0].' - '.$addrs[1].PHP_EOL.'<br/>';



Запись в БД осуществляется простым :
Код: php
1.
$sql = "INSERT INTO sensor_readings (sensor_id, sensor_value) VALUES ('$addrs[0]', '$addrs[1]')";



Каким образом я могу считать все данные из '$addrs[0]', '$addrs[1]', т.к. таким образом записываются только последние значения
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703310
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DivestЗапись в БД осуществляется простым :
Код: php
1.
$sql = "INSERT INTO sensor_readings (sensor_id, sensor_value) VALUES ('$addrs[0]', '$addrs[1]')";

Неверно. Этот код ничего в базу не пишет. А всего лишь в PHP-переменную $sql.

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703325
Divest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, не совсем правильно написал, в sql пишет следующая конструкция:

Код: php
1.
2.
3.
4.
5.
6.
if(!mysql_query($sql))
{echo '<p><b>Data upload error!</b></p>';}
else
{echo '<p><b>OK</b></p>';}
// закрываем соединение с базой
mysql_close($connect);



Собственно с записью и подключением "проблемы нет", интересует как можно получить все данные и записать их таблицу.
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703333
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо. PDO удобнее. Попробуйте
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703340
Divest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, мне это ничего не дает.
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703355
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно показать var_dump($data); ?
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703361
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Divest,

Вы же хотите записать несколько показаний датчиков, значит должен быть цикл, в котором вызывается mysql_query($sql). А цикла-то и нет.
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703371
Divest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне на сейчас подсказали что копать надо в эту сторону, на mysql_query, но прочитав ман, пока совсем не разобрался.
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703372
Divest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, string(46) "28FF820410140093:25.50;28FFE90310140074:25.50;" string(46) "28FF820410140093:25.50;28FFE90310140074:25.50;"
Данные почему-то повторяются.
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703398
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Divest, в пхп внутри строки можно вставлять только простые переменные "$a", а элементы массива вставлять нельзя "$a[0]", поэтому решение вот такое:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?             
$ch = curl_init();
curl_setopt_array
(
    $ch, array
    (
        CURLOPT_URL => 'http://255.255.255.254/getdev', 
        CURLOPT_RETURNTRANSFER => true
    )
);

foreach(explode(';', curl_exec($ch)) as $v)
{
    list($id, $v) = array_pad(explode(":", $v), 2, null);
    if ($v) mysql_query("INSERT INTO sensor_readings (sensor_id, sensor_value) VALUES ('$id', '$v')")
}

mysql_close($connect);


?>
...
Рейтинг: 0 / 0
cURL, регулярные значения и запись в БД
    #38703401
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Divest, ещё учитывая особенности пхп и настройки конкретно твоего пхп, но вообще-то твоя задача сводится к более короткому скрипту вот так


Код: php
1.
2.
3.
4.
5.
6.
7.
<?             
foreach(explode(';', get_file_contents("http://255.255.255.254/getdev")) as $v)
{
    list($id, $v) = array_pad(explode(":", $v), 2, null);
    if ($v) mysql_query("INSERT INTO sensor_readings (sensor_id, sensor_value) VALUES ('$id', '$v')")
}
?>
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / cURL, регулярные значения и запись в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]