Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594

Простой парсер для файлов конфига

21.05.2016, 07:46. Показов 2305. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, девчата, поделитесь функцией парсинга для файлов вида:
variable=value;
variable2=value2;


В общем задача стоит создавать и изменять файлы конфигураций средствами php, а потом их подключать.
Мне нужно после file_get_contents() получить массив вида variable => value

п.с. самое важное тут скорость обработки, каждыю мили мил мили секунда важна
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2016, 07:46
Ответы с готовыми решениями:

Простой php парсер для скачивания картинок с сайта
Мне нужно быстро скачать около 500 картинок с одного сайта. Самой писать времени нету, поэтому я стала искать скрипт в сети и нашла. Только...

Парсер иерархического конфига
Доброго всем дня. Есть текстовый файл с содержанием такого рода Category1 { Param1 = Val1; Param2 = Val2; Param3 = Val3; ...

Простой парсер для vk.com
Хочу научиться писать парсер, объектом решил взять сайт vk.com Информация, которую хочу собрать:Фамилия, Имя, Фото, Год рождения, СП....

14
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,912
21.05.2016, 07:49
file(), затем foreach и explode по символу =.
1
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.05.2016, 07:57  [ТС]
и еще, вид файлов не обязательно такой. Предложите свои варианты.

Добавлено через 5 минут
Jodah, Сейчас попробую!
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
21.05.2016, 08:12
53ifbb, можно хранить настройки в JSON, тогда разбор файла будет в одну строку:
PHP
1
2
3
4
<?php
$config = json_decode(file_get_contents('config.json'), true);
var_dump($config);
?>
пример конфига
JSON
1
2
3
4
{
    "variable1" : "value1",
    "variable2" : "value2"
}
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
21.05.2016, 08:22
php - интерпретируемый язык. Поэтому почему бы не хранить конфиг как php файл?
PHP
1
2
3
4
5
<?php // config.php
return [
    'var1' => 'val1',
    // ...
];
PHP
1
2
<?php
$data = include 'config.php';
Не нужно реализовывать разбор такого файла, это будет сделано средствами интерпретатора, и вероятно это будет самым быстрым способом, но без тестов утверждать не буду. Также такие файлы проще редактировать в отличае от xml или json
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.05.2016, 08:27  [ТС]
функция file то что надо, там где у меня просто список для перебора...
И как я про нее забыл, вместо этого написал регулярку.

Cra3y, хм, интересный вариант. Тоже его попробую. А что тут со скоростью?

Добавлено через 2 минуты
Jewbacabra, вот именно от этого варианта я и избавляюсь. Я делаю все более структурировано. Нужно что бы самый глупый ландух мог внести правки.
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
21.05.2016, 08:29
Лучший ответ Сообщение было отмечено 53ifbb как решение

Решение

config.ini
Code
1
2
3
4
5
6
variable=value
variable2=value2
 
[MyArray]
variable=value
variable2=value2
PHP
1
2
$config = parse_ini_file('config.php', true);
var_dump($config);
1
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.05.2016, 08:30  [ТС]
Jewbacabra, когда написано драйвер=оракл Энтер хост=134.5 - тут невероятно трудно накосячить по синтаксису.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
21.05.2016, 08:30
Цитата Сообщение от 53ifbb Посмотреть сообщение
Нужно что бы самый глупый ландух мог внести правки.
Такому какой формат не давай - везде накосячит. В таком случае лучше графический интерфейс с максимальной защитой от дурака, как все это хранить уже вторично. Если важна скорость то можно задуматься о кешировании конфигов в оперативной памяти
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
21.05.2016, 08:40
Поправить уже не могу, в #7 ошибка в названии файла. должно быть
PHP
1
parse_ini_file('config.ini', true);
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.05.2016, 13:04  [ТС]
Dolphin, бинго! еще и комментарии есть! Присылаю много лайков

Добавлено через 3 минуты
Jewbacabra, Конечно все интерфейсы присутствуют, но сейчас прорабатываю самый низкий уровень, там при неких ситуациях может помочь только ручная правка). Да! кеширования тоже скорее всего добавлю.

Добавлено через 45 секунд
Dolphin, Да ни чего) я почитаю документацию.

Добавлено через 4 часа 18 минут
Dolphin, Эта фун-я поддерживает константы в значениях, а могу ли я к константе добавить еще часть значения ?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
21.05.2016, 14:44
Цитата Сообщение от 53ifbb Посмотреть сообщение
Эта фун-я поддерживает константы в значениях, а могу ли я к константе добавить еще часть значения ?
Не совсем понял, о чем речь
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.05.2016, 15:26  [ТС]
Dolphin, хотелось бы для следать запись типа var=CONST.value
И еще, как сделать редактирование значений через веб ? Самое простое решение нужно, на 1-10 строк
без поддержки секций, только значения и все.
0
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 7
21.05.2016, 21:23
спасибо за инфу!
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.05.2016, 22:00  [ТС]
ВСЕ ВОПРОСЫ РЕШЕНЫ!

п.с. редактирование сделал file_get_contents->preg_replace(c модификатором m)->file_put_contents
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.05.2016, 22:00
Помогаю со студенческими работами здесь

Простой парсер для начинающих
Есть небольшой код. Как правильно получить данные из блока с классом part-content content__block dark font-size-17 line-height-25? ...

Посимвольный парсер для больших файлов
Задача: написать программу, преобразующую данные входного файла в формате одной разметки в формат другой, вывод также в файл. Необходимо...

Существует ли парсер для файлов vcard?
Нужен парсер для файлов vcard. Не подскажете есть такой или нет?

Парсер для двух текстовых файлов
Здравствуйте уважаемые программисты... Пожалуйста научите как создать парсер для текстовых файлов? Имеется: 1. Файл со списком имен. ...

Прочитать расширение файлов с конфига
Добрий день! Мне нужно прочитать розширение файлов с конфига. Я использую для этого key, и соответсвенно розширение записываю в value....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru