Funkcia file_put_contents

Funkcia file_put_contents zapisuje dáta do súboru. Prvý parameter - cesta k súboru, druhý - dáta na zápis. Tretí voliteľný parameter určuje režim zápisu (pozri tabuľku nižšie).

Štvrtý voliteľný parameter predstavuje zdroj kontextu prúdu, vytvorený funkciou stream_context_create. Umožňuje nastaviť parametre práce so súborom alebo sieťovým zdrojom.

Syntax

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

Hodnoty tretieho parametra

Príznak Popis
FILE_USE_INCLUDE_PATH Ak je nastavený, funkcia bude hľadať súbor v adresároch, uvedených v parametri include_path v nastaveniach PHP v súbore php.ini.
FILE_APPEND Dopísať dáta na koniec súboru namiesto prepísania
LOCK_EX Získať exkluzívne zamknutie súboru na čas zápisu

Príklad

Zapíšme reťazec do súboru:

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

Výsledok vykonania kódu vracia počet zapísaných bajtov:

php5

Príklad

Pridajme dáta na koniec súboru:

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

Príklad

Zápis poľa do súboru:

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

Príklad

V treťom parametri je možné uviesť niekoľko príznakov, zoznamujeme ich cez symbol |. Ako príklad dopíšme dáta so zamknutím súboru:

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

Príklad

Použitie kontextu:

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

Pozrite tiež