# file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contents — Écrit des données dans un fichier

### Description

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

Revient à appeler les fonctions fopen(), fwrite() et fclose() successivement.

Si le fichier `filename` n'existe pas, il sera créé. Sinon, le fichier existant sera écrasé, si l'option `FILE_APPEND` n'est pas définie.

### Liste de paramètres

`filename`

  Chemin vers le fichier dans lequel on doit écrire les données.

`data`

  Les données à écrire. Peut être soit une chaîne de caractères, un tableau ou une ressource de flux (explication plus bas).

  Si `data` est une ressource de type stream, le buffer restant de ce flux sera copié dans le fichier spécifié. Cela revient à utiliser la fonction stream_copy_to_stream().

  Vous pouvez également spécifier le paramètre `data` en tant qu'un tableau à une seule dimension. C'est l'équivalent à `file_put_contents($filename, implode('', $array))`.

`flags`

  La valeur du paramètre `flags` peut être n'importe quelle combinaison des drapeaux suivants, liés par l'opérateur binaire OU (`|`).

  Drapeaux disponibles
  Drapeau | Description
  --- | ---
  `FILE_USE_INCLUDE_PATH` | Recherche le fichier `filename` dans le dossier d'inclusion. Voir include_path pour plus d'informations.
  `FILE_APPEND` | Si le fichier `filename` existe déjà, cette option permet d'ajouter les données au fichier au lieu de l'écraser.
  `LOCK_EX` | Acquiert un verrou exclusif sur le fichier lors de l'opération d'écriture. En d'autre terme, un appel à la fonction flock() survient entre l'appel à la fonction fopen() et l'appel à la fonction fwrite(). Ce comportement n'est pas identique à un appel à la fonction fopen() avec le mode "x".

`context`

  Une ressource de contexte valide créée avec la fonction stream_context_create().

### Valeurs de retour

Retourne le nombre d'octets qui ont été écrits au fichier, ou `false` si une erreur survient.

Avertissement

Cette fonction peut retourner `false`, mais elle peut aussi retourner une valeur équivalent à `false`. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

### Exemples

Exemple #1 Utilisation simple de file_put_contents

`<?php
$file = 'people.txt';
// Ouvre un fichier pour lire un contenu existant
$current = file_get_contents($file);
// Ajoute une personne
$current .= "Jean Dupond\n";
// Écrit le résultat dans le fichier
file_put_contents($file, $current);
?>`

Exemple #2 Utilisation d'options pour file_put_contents

`<?php
$file = 'people.txt';
// Une nouvelle personne à ajouter
$person = "Jean Dupond\n";
// Ecrit le contenu dans le fichier, en utilisant le drapeau
// FILE_APPEND pour rajouter à la suite du fichier et
// LOCK_EX pour empêcher quiconque d'autre d'écrire dans le fichier
// en même temps
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>`

### Notes

> Note: Cette fonction gère les chaînes binaires.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur les variables prédéfinies qu'elles fournissent.

### Voir aussi

- fopen() - Ouvre un fichier ou une URL
- fwrite() - Écrit un fichier en mode binaire
- file_get_contents() - Lit tout un fichier dans une chaîne
- stream_context_create() - Crée un contexte de flux