| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > парсер ini файла |
| Автор: Sniper 11.8.2008, 16:44 | ||||
пытаюсь осилить написание собственного велоси^W функции парсинга ini файла
код:
как исправить? |
| Автор: Feldmarschall 11.8.2008, 16:53 |
| ты в курсе, что в пхп есть встроенная функция для этого? что значит "ожидаю что в $section окажется: sect1 sect2 sect3"? В скалярной переменной может быть только одно значение, а не три. почему не пишешь, что именно "в $section оказывается"? |
| Автор: Sniper 11.8.2008, 17:35 |
разумеется, я ж написал "... пытаюсь осилить написание собственного велоси^W функции" в section оказывается sect1] но так как там цикл то выводится на печать соответственно sect1]sect2]sect3] |
| Автор: ksnk 11.8.2008, 17:39 |
| Sniper, А проверить последнюю букву в строке отладчик не разрешает? Вдруг там пробел или \r? |
| Автор: mr.Anderson 11.8.2008, 17:39 |
| Sniper, я в свое время писал подобную вещь... Попробую нарыть что-нибудь... Добавлено через 38 секунд Вот, держи. Сделан по аналогии с дельфовым классом, я воткнул туда самое необходимое. |
| Автор: Sniper 11.8.2008, 17:51 | ||||
| эх спасибо, но у меня готово практически, осталось вот с этой штукой разобраться: Вот что я сделал, но оно плохо функционирует...
помогите вот это доделать чтоб работало. Результат сейчас вот такой
вот эту дурацкую вторую скобку ] в каждой секции и пробел в имени ключа не могу победить |
| Автор: piflit 11.8.2008, 18:01 |
| Sniper можно распарсить регулярками сначала /\[([^\]]+)\]/ => sect_array потом foreach( $sect_array as $val ) { /\[$val\]\s+(\w+)/s => key_val /\[$val\]\s+\w+ = ([^;]+);/s => value_val } в любой момент можно сделать array_push или сохранять во временный файл или другим образом запоминать полученные результаты ЗЫ но лучше юзать готовые функции |
| Автор: bobik02 11.8.2008, 18:04 |
| Все же(если не секрет) чем не устроила ? - http://ua2.php.net/manual/ru/function.parse-ini-file.php |