Functie file_put_contents

De functie file_put_contents schrijft gegevens naar een bestand. De eerste parameter is het pad naar het bestand, de tweede - de gegevens om te schrijven. De derde optionele parameter bepaalt de schrijfmode (zie tabel hieronder).

De vierde optionele parameter is een resource van een streamcontext, gemaakt door de functie stream_context_create. Stelt je in staat om parameters voor het werken met een bestand of netwerkbron in te stellen.

Syntaxis

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

Waarden van de derde parameter

Flag Beschrijving
FILE_USE_INCLUDE_PATH Indien ingesteld, zal de functie naar het bestand zoeken in de mappen gespecificeerd in de include_path parameter in de PHP-instellingen in het bestand php.ini.
FILE_APPEND Gegevens toevoegen aan het einde van het bestand in plaats van overschrijven
LOCK_EX Verkrijg een exclusieve vergrendeling van het bestand gedurende het schrijven

Voorbeeld

Laten we een string naar een bestand schrijven:

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

Het resultaat van het uitvoeren van de code retourneert het aantal geschreven bytes:

php5

Voorbeeld

Laten we gegevens toevoegen aan het einde van het bestand:

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

Voorbeeld

Een array naar een bestand schrijven:

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

Voorbeeld

In de derde parameter kunnen meerdere flags worden opgegeven, gescheiden door het symbool |. Laten we als voorbeeld gegevens toevoegen met een bestandsvergrendeling:

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

Voorbeeld

Gebruik van context:

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

Zie ook

  • de functie file_get_contents,
    die de inhoud van een bestand leest
  • de functie fopen,
    die een bestand opent
  • de functie fwrite,
    die naar een bestand schrijft