Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: парсер конфигурационного файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Грачи прилетели
Отправлено: 12 Июня, 2021 - 22:55:45
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Добрый день!

Прошу совета -

мне необходимо распарсить конфигурационный файл, который имеет такую структуру

CODE (htmlphp):
скопировать код в буфер обмена
  1. [section1]
  2. 11111
  3. 22222
  4. 33333
  5. 44444
  6.  
  7. [section2]
  8. 11111
  9. 33333
  10. 77777
  11.  
  12. [section3]
  13. 2222
  14. 3333
  15. 1111
  16. 5555
  17.  


значения этих блоков необходимо проинсертить в одну таблицу
name - section
val - все строки это секции

что-то типа такого insert

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO `tbl_tmp` ( `name`, `val` ) VALUES ( 'section1', '1111'' ))
  3. INSERT INTO `tbl_tmp` ( `name`, `val` ) VALUES ( 'section1', '2222'' ))
  4. ...
  5. INSERT INTO `tbl_tmp` ( `name`, `val` ) VALUES ( 'section2', '1111'' ))
  6. ....
  7. INSERT INTO `tbl_tmp` ( `name`, `val` ) VALUES ( 'section3', '5555'' ))
  8.  
  9.  


вместе с этим в файле есть строки комментарием отделенные # их отсеиваю в том же цикле ниже

Пока замер на этом варианте, не могу понять как правильно совместить секцию и значения строк

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file = "file.cfg";
  3. $hdl= fopen($file , "r");
  4.         if ($hdl) {
  5.                 while (($line = fgets($hdl)) !== false) {
  6.  
  7.        if (mb_strlen($line) === 0 || $line[0] === '#') continue;
  8.                 $arr = explode("\n", $line);
  9.  
  10.                 echo $arr[0]."<br />";
  11.  }
  12. }


не могу понять как мне в цикле проиграть группу и строку из группы

Посоветуйте, пожалуйста
Спасибо

(Отредактировано автором: 12 Июня, 2021 - 22:57:46)

 
 Top
Vladimir Kheifets
Отправлено: 13 Июня, 2021 - 07:10:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Грачи прилетели пишет:
Добрый день!

Прошу совета -

мне необходимо распарсить конфигурационный файл
значения этих блоков необходимо проинсертить в одну таблицу
name - section
val - все строки это секции
вместе с этим в файле есть строки комментарием отделенные # их отсеиваю в том же цикле ниже

не могу понять как мне в цикле проиграть группу и строку из группы

Добрый день!
Попробуйте сделать так:
Спойлер (Отобразить)
Удачи!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB