file_put_contents
(PHP 5, PHP 7, PHP 8)
file_put_contents — Записує рядок у файл
Опис
Якщо файлу (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);
?>
Примітки
Зауваження: Ця функція є бінарно
безпечною.
ПідказкаURL як назву файлу можна
використовувати з цією функцією, якщо ввімкнені обгортки fopen. Докладніше про те, як
вказати назву файлу: fopen(). На сторінці Підтримувані протоколи та обгортки є посилання на інформацію про можливості різних обгорток,
примітки щодо їхнього використання, інформацію про будь-які попередньо визначені
цими обгортками змінні.