Écriture de fichiers

Résumé Support Quiz

Dans ce chapitre, nous allons voir comment écrire des données dans un fichier en PHP. Cette approche peut servir dans différents cas : sauvegarder des emails, générer un fichier journal, stocker une liste d'éléments ou préparer des données à importer ensuite dans un autre outil.

Écrire avec file_put_contents

Pour écrire dans un fichier, PHP propose la fonction file_put_contents.

Elle reçoit au minimum deux informations :

  • le chemin du fichier.
  • le contenu à écrire.
file_put_contents($file, $email);

Avec cette écriture, PHP écrit le contenu dans le fichier indiqué. Si le fichier n'existe pas, il peut être créé automatiquement. Pour construire le chemin du fichier on peut utiliser les constantes suivantes :

  • __DIR__ représente le dossier du fichier PHP en cours
  • DIRECTORY_SEPARATOR utilise le bon séparateur suivant le système

Ajouter du contenu sans écraser

Par défaut, écrire dans un fichier peut remplacer son contenu existant. Dans beaucoup de situations, ce n'est pas ce que l'on veut : on souhaite plutôt ajouter une nouvelle ligne à la fin du fichier.

Pour cela, on utilise le drapeau FILE_APPEND en troisième paramètre.

file_put_contents($file, $email, FILE_APPEND);

FILE_APPEND indique à PHP qu'il faut ajouter le contenu à la fin du fichier au lieu de repartir de zéro.

C'est utile lorsqu'on veut conserver un historique ou accumuler plusieurs valeurs dans un même fichier.

Ajouter une fin de ligne

Si on ajoute plusieurs valeurs avec FILE_APPEND, elles risquent d'être collées les unes aux autres.

Pour obtenir un fichier plus lisible, on ajoute une fin de ligne après chaque valeur avec la constante PHP_EOL.

file_put_contents($file, $email . PHP_EOL, FILE_APPEND);

PHP_EOL représente le caractère de fin de ligne adapté à l'environnement.

Le fichier obtenu contiendra alors une valeur par ligne, ce qui sera plus pratique à relire ou à importer dans un autre outil.