file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contentsПишет данные в файл

Описание

file_put_contents(
    string $filename,
    mixed $data,
    int $flags = 0,
    ?resource $context = null
): int|false

Функция идентична последовательным успешным вызовам функций fopen(), fwrite() и fclose().

Если filename не существует, файл будет создан. Иначе, существующий файл будет перезаписан, за исключением случая, если указан флаг FILE_APPEND.

Список параметров

filename

Путь к записываемому файлу.

data

Записываемые данные. Может быть типа string, array или ресурсом потока.

Если data является потоковым ресурсом (stream), оставшийся буфер этого потока будет скопирован в указанный файл. Это похоже на использование функции stream_copy_to_stream().

Также вы можете передать одномерный массив в качестве параметра data. Это будет эквивалентно вызову file_put_contents($filename, implode('', $array)).

flags

Значением параметра flags может быть любая комбинация следующих флагов, соединённых бинарным оператором ИЛИ (|).

Доступные флаги
Флаг Описание
FILE_USE_INCLUDE_PATH Ищет filename в подключаемых директориях. Подробнее смотрите директиву include_path.
FILE_APPEND Если файл filename уже существует, данные будут дописаны в конец файла вместо того, чтобы его перезаписать.
LOCK_EX Получить эксклюзивную блокировку на файл на время записи. Другими словами, между вызовами fopen() и fwrite() произойдёт вызов функции flock(). Это не одно и то же, что вызов fopen() с флагом "x".

context

Корректный ресурс контекста, созданный с помощью функции stream_context_create().

Возвращаемые значения

Функция возвращает количество записанных байт в файл, или false в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример простого использования

<?php
$file
= 'people.txt';
// Открываем файл для получения существующего содержимого
$current = file_get_contents($file);
// Добавляем нового человека в файл
$current .= "John Smith\n";
// Пишем содержимое обратно в файл
file_put_contents($file, $current);
?>

Пример #2 Использование флагов

<?php
$file
= 'people.txt';
// Новый человек, которого нужно добавить в файл
$person = "John Smith\n";
// Пишем содержимое в файл,
// используя флаг FILE_APPEND для дописывания содержимого в конец файла
// и флаг LOCK_EX для предотвращения записи данного файла кем-нибудь другим в данное время
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Смотрите также