Funkcja file_put_contents

Funkcja file_put_contents zapisuje dane do pliku. Pierwszy parametr - ścieżka do pliku, drugi - dane do zapisania. Trzeci opcjonalny parametr określa tryb zapisu (patrz tabela poniżej).

Czwarty opcjonalny parametr reprezentuje zasób kontekstu strumienia, utworzony przez funkcję stream_context_create. Pozwala skonfigurować parametry pracy z plikiem lub zasobem sieciowym.

Składnia

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

Wartości trzeciego parametru

Flaga Opis
FILE_USE_INCLUDE_PATH Jeśli ustawiona, funkcja będzie szukać pliku w katalogach określonych w parametrze include_path w ustawieniach PHP w pliku php.ini.
FILE_APPEND Dopisywać dane na koniec pliku zamiast nadpisywania
LOCK_EX Uzyskać wyłączną blokadę pliku na czas zapisu

Przykład

Zapiszmy ciąg znaków do pliku:

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

Wynik wykonania kodu zwraca liczbę zapisanych bajtów:

php5

Przykład

Dodajmy dane na koniec pliku:

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

Przykład

Zapis tablicy do pliku:

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

Przykład

W trzecim parametrze można określić kilka flag, wymieniając je przez symbol |. Jako przykład dopiszmy dane z blokadą pliku:

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

Przykład

Użycie kontekstu:

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
  );
?>

Zobacz też

  • funkcję file_get_contents,
    która odczytuje zawartość pliku
  • funkcję fopen,
    która otwiera plik
  • funkcję fwrite,
    która zapisuje do pliku