Функцыя 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,
    якая запісвае ў файл