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
Форумы портала PHP.SU :: Версия для печати :: парсер конфигурационного файла
Форумы портала PHP.SU » » Вопросы новичков » парсер конфигурационного файла

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

1. Грачи прилетели - 12 Июня, 2021 - 22:55:45 - перейти к сообщению
Добрый день!

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

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

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. }


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

Посоветуйте, пожалуйста
Спасибо
2. Vladimir Kheifets - 13 Июня, 2021 - 07:10:05 - перейти к сообщению
Грачи прилетели пишет:
Добрый день!

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

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

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

Добрый день!
Попробуйте сделать так:
Спойлер (Отобразить)
Удачи!

 

Powered by ExBB FM 1.0 RC1