file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contentsЗаписує рядок у файл

Опис

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

Ця функція є ідентичною до послідовних викликів fopen(), fwrite() та fclose() для записування даних у файл.

Якщо файлу (filename) не існує, його буде створено. В іншому випадку, існуючий файл буде перезаписано, якщо не встановлено флаг FILE_APPEND.

Параметри

filename

Шлях до файлу, куди будуть записуватись дані.

data

Дані для запису. Може бути рядком (string), масивом (array) або ресурсом потоку (stream).

Якщо дані (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 Отримати монопольне блокування поки йде процес записування.

context

Коректний ресурс контента створений за допомогою функції stream_context_create().

Значення, що повертаються

Ця функція повертає кількість байтів, які будуть записані до файла, або false при невдачі.

Увага

Ця функція може повертати як логічне false, так і не логічне значення, яке прирівнюється до false. Докладніше про це описано в розділі Логічні типи даних. Для перевірки значення, яке повертає ця функція, використовується оператор ===.

Приклади

Приклад #1 Просте використання

<?php
$file
= 'people.txt';

// Відкрити файл для отримання існуючого вмісту
$current = file_get_contents($file);

// Додати нову особу до файлу
$current .= "Коля Шкраб";

// Вписати вміст назад у файл
file_put_contents($file, $current);
?>

Приклад #2 Використання флагів

<?php
$file
= 'people.txt';

// Додати нову особу до файлу
$person = "Коля Шкраб";

// Запис до файлу з використанням флагу FILE_APPEND,
// щоб вміст додавався в кінець,
// та блокування файлу за допомогою флагу LOCK_EX, щоб недопустити одночасний запис ще кимось
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Журнал змін

Версія Опис
5.1.0 Додано підтримку для LOCK_EX та можливість передавати ресурс потоку в параметр data

Примітки

Зауваження: Ця функція є бінарно безпечною.

Підказка

URL як назву файлу можна використовувати з цією функцією, якщо ввімкнені обгортки fopen. Докладніше про те, як вказати назву файлу: fopen(). На сторінці Підтримувані протоколи та обгортки є посилання на інформацію про можливості різних обгорток, примітки щодо їхнього використання, інформацію про будь-які попередньо визначені цими обгортками змінні.

Прогляньте також