У меня есть INI-файл, который я должен добавить в PHP Forms. На данный момент у меня есть рабочий код для создания раздела, если он не существует, и замены значения, если он существует. То, с чем я борюсь, это добавление.
Например, сейчас это мой INI-файл.
[Persons]
names = "travis", "jackson"
color = "blue"
На стороне PHP у меня есть форма для вставки раздела, ключа и значения
Скажите, что секция ввода Person
, клавиша color
и значение red
.
Новый файл INI, который я хочу, должен быть
[Persons]
names = "travis", "jackson"
color = "blue", "red"
Исходный код, который я пытаюсь изменить: ( взят из этой статьи стека )
function config_set($config_file, $section, $key, $value) {
$config_data = parse_ini_file($config_file, true);
$config_data[$section][$key] = $value;
$new_content = '';
foreach ($config_data as $section => $section_content) {
$section_content = array_map(function($value, $key) {
return "$key=$value";
}, array_values($section_content), array_keys($section_content));
$section_content = implode("\n", $section_content);
$new_content .= "[$section]\n$section_content\n";
}
file_put_contents($config_file, $new_content);
}
Мои мысли просто добавить текущий ключ, но я не уверен, как это сделать
РЕДАКТИРОВАТЬ: Попытки вещей, которые я пытался
Это сделало ноль изменений в INI-файл до изменения
function config_set($config_file, $section, $key, $value) {
$config_data = parse_ini_file($config_file, true);
$config_data[$section][$key] = $value;
$new_content = "[$section]\n$value";
foreach ($config_data as $section => $section_content) {
$section_content = array_map(function($value, $key) {
return "$key=$value";
}, array_values($section_content), array_keys($section_content));
$section_content = implode("\n", $section_content);
$new_content .= "\n$section_content\n";
}
file_put_contents($config_file, $new_content);
}
Это сломало страницу
function config_set($config_file, $section, $key, $value) {
$config_data = parse_ini_file($config_file, true);
$config_data[$section][$key] = $old_val;
$new_content = '';
foreach ($config_data as $section => $section_content) {
$section_content = array_map(function($value, $key) {
return "$key=$old_val, $value";
}, array_values($section_content), array_keys($section_content));
$section_content = implode("\n", $section_content);
$new_content .= "[$section]\n$section_content\n";
}
file_put_contents($config_file, $new_content);
}