file_put_contents
(PHP 5, PHP 7)
file_put_contents — Пишет данные в файл
Описание
Функция идентична последовательным успешным вызовам функций 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, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.
Смотрите также
- fopen() - Открывает файл или URL
- fwrite() - Бинарно-безопасная запись в файл
- file_get_contents() - Читает содержимое файла в строку
- stream_context_create() - Создаёт контекст потока