Fonctions sur les systèmes de fichiers
PHP Manual

file_put_contents

(PHP 5)

file_put_contentsÉcrit un contenu dans un fichier

Description

int file_put_contents ( string $filename , mixed $data [, int $flags= 0 [, resource $context ]] )

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éfini.

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 suivant (avec quelques restrictions), 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. Cette option est mutuellement exclusive avec LOCK_EX car les ajouts sont atomiques, et qu'il n'y a pas de raison de poser de verrou.
LOCK_EX Acquiert un verrou exclusif sur le fichier lors de l'opération d'écriture. Mutuellement exclusif avec FILE_APPEND.
FILE_TEXT Les données data sont écrites en mode texte. Si la sémantique unicode est activée, l'encodage par défaut pour la lecture des données sera UTF-8. Vous pouvez spécifier un encodage différent en créant un contexte personnalisé ou en modifiant celui par défaut en utilisant la fonction stream_default_encoding(). Ce drapeau ne peut être utilisé avec FILE_BINARY. Ce drapeau est uniquement disponible depuis PHP 6.
FILE_BINARY Les données data seront écrites en mode binaire. C'est la configuration par défaut et ne peut être utilisée avec le drapeau FILE_TEXT. Ce drapeau n'est disponible qu'à partir de PHP 6.

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.

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 Dupoond\n";
// Ecrit le contenu dans le fichier
// en utilisant l'option FILE_APPEND pour ajouter le contenu à la fin du fichier
// et l'option LOCK_EX pour éviter une écriture concurrente
file_put_contents($file$personFILE_APPEND LOCK_EX);
?>

Historique

Version Description
5.0.0 Ajout du support du contexte.
5.1.0 Ajout du support de LOCK_EX et la possibilité de passer une ressource de flux dans le paramètre data .
6.0.0 Ajout le support des drapeaux FILE_TEXT et FILE_BINARY.

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ée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Liste des protocoles supportés pour une liste des protocoles URL supportés.

Voir aussi


Fonctions sur les systèmes de fichiers
PHP Manual