Потеря логических значений при разборе * .ini-файла с использованием PHP - PullRequest
3 голосов
/ 11 августа 2011

Просто попытался создать свой собственный обработчик конфигурации в PHP, используя нативную функцию PHP parse_ini_file. Я только что заметил, что все мои записи конфигурации, где значение является логическим - true / false, перепутаны, как и большинство других записей конфигурации, типизированных по строкам.

По-видимому, это уже известная проблема: http://www.php.net/manual/en/function.parse-ini-file.php#100851

Итак, каков подходящий обходной путь?
Очень удобно использовать не-PHP-конфиги, что позволяет не-разработчикам легко изменять значение при необходимости, поэтому я бы хотел сохранить конфиги на основе *.ini.

Ответы [ 2 ]

1 голос
/ 16 июля 2016

A немного поздно для вечеринки, но начиная с PHP 5.6, вы можете передать третий аргумент INI_SCANNER_TYPED, и он будет поддерживать тип значения

parse_ini_file('config.ini', true, INI_SCANNER_TYPED)
0 голосов
/ 11 августа 2011

Полагаю, самое простое решение проблемы - просто использовать свой собственный обработчик конфигурации.Либо напишите класс ini, либо загрузите бесплатный (формат ini чрезвычайно прост).

Но я бы порекомендовал сохранить ваш конфиг в xml, если вы хотите совместимости.Каждый современный язык программирования имеет множество доступных или встроенных парсеров XML.Также вы получаете больше гибкости в вашей структуре настроек.И вы можете легко сделать ваши настройки формата безопасными.

...