Intereting Posts
как я могу получить все флажки, даже если они не проверены с HTML на PHP? Переводы с DB в ZF2 Внедрить приложение Silex $ в мой пользовательский класс Как убить все / php-сессии? Ошибка «Только оригинальный поток, создавший иерархию представлений, может коснуться его представлений» в Android При использовании PHP в Windows лучше (1) собственный драйвер для SQL Server или (2) драйвер PDO? Отправка электронной почты с помощью CodeIgniter с использованием «mail» или «sendmail» Как AUTOINCREMENT, начиная с определенного количества / смещения? как передать значение с одной php-страницы на другую, используя сеанс как получить иерархическое меню из mysql Разделяйте кнопки отправки в формах, которые сообщают форму «действие» для публикации в разные файлы? Разверните Laravel 5.1 на облачном хостинге Symfony2 передает значения в тип коллекции требует ext-fileinfo. Как добавить это в мой файл composer.json? Примечание: Неопределенное смещение: 0

Как обновить ini-файл с помощью php?

У меня есть существующий файл ini, который я создал, и я хотел бы знать, есть ли способ обновить раздел файла или мне придется переписывать весь файл каждый раз?

Вот пример моего файла config.ini:

[config] title='test' status=0 [positions] top=true sidebar=true content=true footer=false 

Скажем, я хочу изменить [positions] top=false . Поэтому я бы использовал parse_ini_file, чтобы получить всю информацию, а затем внести свои изменения и использовать fwrite для перезаписи всего файла. Или есть способ изменить этот раздел?

Related of "Как обновить ini-файл с помощью php?"

Я использовал первое предложение о вас:

Поэтому я бы использовал файл parse_ini_file, чтобы получить всю информацию, а затем внести изменения и использовать fwrite для перезаписи всего файла

 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); } 

Если вы используете функции PHP INI, вы должны каждый раз переписывать файл.

Если вы напишете свой собственный процессор, вы можете (с ограничениями) обновить его. Если ваши вставки длиннее или короче, чем ваши удаления, вам все равно придется переписать файл.

Это прекрасный пример того, когда вы можете использовать регулярные выражения для замены строки текста. Проверьте функцию preg_replace . Если вы не совсем уверены, как использовать регулярные выражения, вы можете найти отличный учебник здесь

Чтобы уточнить, вам нужно сделать что-то вроде этого:

 <?php $contents = file_get_contents("your file name"); preg_replace($pattern, $replacement, $contents); $fh = fopen("your file name", "w"); fwrite($fh, $contents); ?> 

Где $ pattern – ваше регулярное выражение, и $ replacement – ваше замещающее значение.