Funkce file_put_contents

Funkce file_put_contents zapisuje data do souboru. První parametr - cesta k souboru, druhý - data pro zápis. Třetí volitelný parametr určuje režim zápisu (viz tabulka níže).

Čtvrtý volitelný parametr představuje prostředek kontextu proudu, vytvořený funkcí stream_context_create. Umožňuje nastavit parametry práce se souborem nebo síťovým prostředkem.

Syntaxe

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

Hodnoty třetího parametru

Příznak Popis
FILE_USE_INCLUDE_PATH Pokud je nastaven, funkce bude hledat soubor v adresářích uvedených v parametru include_path v nastavení PHP v souboru php.ini.
FILE_APPEND Připisovat data na konec souboru místo přepsání
LOCK_EX Získat exkluzivní zámek souboru na dobu zápisu

Příklad

Zapišme řetězec do souboru:

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

Výsledek provedení kódu vrací počet zapsaných bajtů:

php5

Příklad

Přidejme data na konec souboru:

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

Příklad

Zápis pole do souboru:

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

Příklad

Ve třetím parametru lze uvádět několik příznaků, výčtem jejich přes symbol |. Jako příklad připišme data se zamčením souboru:

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

Příklad

Použití 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
  );
?>

Viz také