Я использую parse_ini_file()
функция для анализа моего файла конфигурации в PHP. process_sections
Параметр установлен в True, потому что мне нужны разделы.
[section 1]
key1 = value1
key2 = value2
...
[section 2]
...
Я хотел бы проверить, существует ли раздел в существующем файле конфигурации, и если нет, я хочу создать его вместе с ключами и значениями, взятыми из массива, без переопределения других разделов.
Я знаю, что в Python есть логический метод, который позволяет легко проверить это: config.has_section('my section')
и создать разделы: config.add_section('my section')
,
Мне было интересно, если есть что-то подобное в PHP.
РЕДАКТИРОВАТЬ:
Я нашел простое решение, но очень эффективное. Я использовал array_key_exists('my section', $my_array)
функция, которая похожа на функцию Python, которую я упоминал ранее, и делает то, что я хотел. Это простой код, который я реализовал
$config = parse_ini_file('MyConfigFile.cfg', True);
if (!array_key_exists('section 3', $config)) {
foreach ($section_three_array as $key => $value) {
$config['section 3'][$key] = $value;
}
}
Затем, чтобы записать новый раздел (если он не существует) с его ключами и значениями в файл конфигурации, я использовал определенную функцию Вот.
Вы можете проверить, существует ли значение, используя isset()
и я рекомендую проверить это также имеет значение с empty()
, Если вы покажете часть своего кода, мы можем посоветовать вам его реализовать.
Там нет собственного способа записи обратно в INI-файл, но вот функция, сделанная кем-то другим.
Других решений пока нет …