Инструменты пользователя

Инструменты сайта


software:development:web:docs:web:php:save_in_the_file_ini

PHP save in the fale.ini

Создать и записать данные в ini файл

Для создания INI-файла в PHP используйте функцию file_put_contents(), формируя содержимое как строку. Простой способ — записать параметры в формате ключ = значение, разделённые переносом строки. Для создания сложных файлов с секциями удобнее использовать массивы и записывать их строками.

create_ini_file_content.php
<?php
$iniContent = "; Настройки приложения\n";
$iniContent .= "[app]\n";
$iniContent .= "app_name = \"My Application\"\n";
$iniContent .= "version = 1.0\n\n";
 
$iniContent .= "[database]\n";
$iniContent .= "host = localhost\n";
$iniContent .= "port = 3306\n";
$iniContent .= "user = root\n";
$iniContent .= "pass = \n";
 
// Создаем файл и записываем содержимое
file_put_contents('config.ini', $iniContent);
echo "Файл config.ini успешно создан.";
?>

Перейдем по адресу http://localhost/create_ini_file_content.php в браузере

Проверим в корневой директиве

Чтение данных ini файла

Для чтения имен секций из .ini файла в PHP используется функция parse_ini_file() с установленным параметром process_sections, установленным в true.

create_ini_file_content.php
<?php
// Прочитать ini файл
$config = parse_ini_file('config.ini', true); // true - сохранить секции
 
echo "My Application: " . $config['app']['app_name'] . "<br>"; // Выведет: app_name
echo "Version Application: " . $config['app']['version'] . "<br>"; // Выведет: 1.0
echo "database: " . $config['database']['host'] . "<br>"; // Выведет: localhost
echo "port: " . $config['database']['port'] . "<br>"; // Выведет: 3306
echo "user: " . $config['database']['user'] . "<br>"; // Выведет: root
echo "password: " . $config['database']['pass'] . "<br>"; // Выведет: пустое место
?>

Перейдем по адресу http://localhost/read_ini_file.php в браузере

Редактирование данных ini файла

Запись и обновление INI-файлов в PHP чаще всего реализуется через полное чтение файла, изменение массива данных и последующую перезапись всего файла. В PHP нет встроенной функции для обновления конкретной строки, поэтому используется метод «чтение-изменение-запись» или создание собственной функции для генерации INI-структуры.

Чтение и обновление INI-файла

Для работы с INI-файлами рекомендуется использовать функцию parse_ini_file для чтения и ассоциативный массив для хранения настроек.

Запись/Создание нового INI-файла

Чтобы создать новый INI-файл с нуля, можно использовать тот же подход, записав массив данных функцией file_put_contents.

edit_ini_file_content.php
<?php
$ini_file = 'config.ini';
 
// 1. ЧТЕНИЕ ДАННЫХ
if (file_exists($ini_file)) {
    // parse_ini_file превращает ini в массив
    $config = parse_ini_file($ini_file, true); 
} else {
    die("Файл конфигурации не найден.");
}
 
// Получаем значения по умолчанию или уже существующие
$appName = $config['app']['app_name'] ?? '';
$appVersion = $config['app']['app_version'] ?? '';
 
 
$enableUpdate = $config['settings']['enable_update'] ?? '';
 
// 2. СОХРАНЕНИЕ ДАННЫХ
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Получаем данные из формы
    $newAppName = $_POST['app_name'];
    $newVersion = $_POST['app_version'];
    $newUpdate = isset($_POST['enable_update']) ? 'true' : 'false';
 
    // Формируем новую строку для записи
	$newContent = "; Настройки приложения\n";
    $newContent .= "[app]\n";
    $newContent .= "app_name = \"$newAppName\"\n";
    $newContent .= "version = $newVersion\n";
    $newContent .= "\n";
 
    $newContent .= "[settings]\n";
    $newContent .= "enable_update = $newUpdate\n";
    $newContent .= "\n";
 
	$newContent .= "; Настройки базы данных\n";	
	$newContent .= "[database]\n";
	$newContent .= "host = localhost\n";
	$newContent .= "port = 3306\n";
	$newContent .= "db = test_setting\n";
	$newContent .= "user = root\n";
	$newContent .= "pass = \n";
 
    // Записываем обратно в файл
    file_put_contents($ini_file, $newContent);
 
    // Перезагружаем страницу, чтобы увидеть новые данные
    header("Location: " . $_SERVER['PHP_SELF']);
    exit;
}
?>
 
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Настройки INI</title>
</head>
<body>
    <h2>Редактировать настройки</h2>
    <form method="POST">
        <label>Название ПО:</label><br>
        <input type="text" name="app_name" value="<?php echo htmlspecialchars($appName); ?>"><br><br>
 
        <label>Номер версии ПО:</label><br>
        <input type="number" step="any" name="app_version" value="<?php echo htmlspecialchars($appVersion); ?>"><br><br>
 
        <label>
            <input type="checkbox" name="enable_update" <?php if ($enableUpdate == '1' || $enableUpdate == 'true') echo 'checked'; ?>>
            Включить обновления
        </label><br><br>
 
        <input type="submit" value="Сохранить">
    </form>
</body>
</html>

Перейдем по адресу http://localhost/edit_ini_file_content.php в браузере и заполним тестовыми данными

Проверим наж ini файл

Только авторизованные участники могут оставлять комментарии.
software/development/web/docs/web/php/save_in_the_file_ini.txt · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki