Fonction file_put_contents

La fonction file_put_contents écrit des données dans un fichier. Le premier paramètre est le chemin vers le fichier, le deuxième - les données à écrire. Le troisième paramètre optionnel définit le mode d'écriture (voir le tableau ci-dessous).

Le quatrième paramètre optionnel représente une ressource de contexte de flux, créée par la fonction stream_context_create. Permet de configurer les paramètres de travail avec un fichier ou une ressource réseau.

Syntaxe

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

Valeurs du troisième paramètre

Drapeau Description
FILE_USE_INCLUDE_PATH S'il est défini, la fonction cherchera le fichier dans les répertoires spécifiés dans le paramètre include_path des paramètres PHP dans le fichier php.ini.
FILE_APPEND Ajouter les données à la fin du fichier au lieu de le réécrire
LOCK_EX Obtenir un verrou exclusif sur le fichier pendant la durée de l'écriture

Exemple

Écrivons une chaîne dans un fichier :

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

Le résultat de l'exécution du code retourne le nombre d'octets écrits :

php5

Exemple

Ajoutons des données à la fin du fichier :

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

Exemple

Écrire un tableau dans un fichier :

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

Exemple

Dans le troisième paramètre, on peut spécifier plusieurs drapeaux, en les énumérant avec le symbole |. Par exemple, ajoutons des données avec un verrouillage du fichier :

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

Exemple

Utilisation d'un contexte :

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

Voir aussi

  • la fonction file_get_contents,
    qui lit le contenu d'un fichier
  • la fonction fopen,
    qui ouvre un fichier
  • la fonction fwrite,
    qui écrit dans un fichier