Функция file_put_contents

Функция file_put_contents записывает данные в файл. Первый параметр - путь к файлу, второй - данные для записи. Третий необязательный параметр определяет режим записи (см. таблицу ниже).

Четвертый необязательный параметр представляет собой ресурс контекста потока, созданный функцией stream_context_create. Позволяет настроить параметры работы с файлом или сетевым ресурсом.

Синтаксис

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

Значения третьего параметра

Флаг Описание
FILE_USE_INCLUDE_PATH Если установлен, функция будет искать файл в директориях, указанных в параметре include_path в настройках PHP в файле php.ini.
FILE_APPEND Дописывать данные в конец файла вместо перезаписи
LOCK_EX Получить эксклюзивную блокировку файла на время записи

Пример

Давайте запишем строку в файл:

php<?php
  $res = file_put_contents('data.txt', 'abcde');
  echo $res;
?>

Результат выполнения кода возвращает количество записанных байт:

php5

Пример

Давайте добавим данные в конец файла:

php<?php
  $res = file_put_contents('data.txt', '12345', FILE_APPEND);
  echo $res;
?>

Пример

Запись массива в файл:

php<?php
  $data = ['a', 'b', 'c'];
  $res = file_put_contents('array.txt', implode(',', $data));
  echo $res;
?>

Пример

В третьем параметре можно указывать несколько флагов, перечисляя их через символ |. Для примера допишем данные с блокировкой файла:

php<?php
  $res = file_put_contents(
    'log.txt',
    "text",
    FILE_APPEND | LOCK_EX
  );
  echo $res;
?>

Пример

Использование контекста:

php<?php
  $opts = [
    'http' => [
      'method' => "POST",
      'header' => "Content-type: text/plain\r\n"
    ]
  ];
  
  $context = stream_context_create($opts);
  
  $res = file_put_contents(
    'http://example.com/api',
    'data=test',
    false,
    $context
  );
?>

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

  • функцию file_get_contents,
    которая читает содержимое файла
  • функцию fopen,
    которая открывает файл
  • функцию fwrite,
    которая записывает в файл