Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как прочитать и записать JSON-файл

Короткий ответ

Прочитайте файл строкой и разберите её:

<?php
 
$file = sys_get_temp_dir() . '/recipe-settings.json';
file_put_contents($file, '{"theme":"dark","size":14}');
 
$settings = json_decode(file_get_contents($file), true);
 
echo $settings['theme'], ' ', $settings['size'];

Результат:

dark 14

Запись

JSON_PRETTY_PRINT делает файл удобным для чтения, JSON_UNESCAPED_UNICODE сохраняет буквы как есть:

<?php
 
$file = sys_get_temp_dir() . '/recipe-settings.json';
 
$settings = ['theme' => 'light', 'city' => 'Zürich'];
 
file_put_contents($file, json_encode($settings, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
 
echo file_get_contents($file);

Результат:

{
    "theme": "light",
    "city": "Zürich"
}

Повреждённый файл

С флагом JSON_THROW_ON_ERROR ошибка разбора становится исключением:

<?php
 
try {
    json_decode('{"theme": "dark",}', true, flags: JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
    echo 'Broken file: ', $e->getMessage();
}

Результат:

Broken file: Syntax error

Функции из этого ответа

  • json_decode — Разбирает строку JSON.
  • json_encode — Преобразует значение в строку JSON.
  • file_put_contents — Записывает данные в файл.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.