Vouloir écrire dans un fichier texte sans en supprimer le contenu existant est une situation qu’on rencontre souvent en tant que développeur. Dans ce mini tutoriel, nous allons voir comment y arriver.
Ecrire à la fin d’un fichier avec fwrite() :
<?php $nomdefichier = 'fichier.txt'; $contenudufichier = 'Du texte à la fin du fichier'; $unautrecontenudufichier = "\r\n".'Un autre texte à la fin du fichier'; // Ouvrir le fichier en mode a $fichier = fopen($nomdefichier, 'a'); // Ecrire dans le fichier fwrite($fichier, $contenudufichier); fwrite($fichier, $unautrecontenudufichier); // Fermer le fichier fclose($fichier); ?>
Le « a » dans la fonction fopen permet d’ouvrir le fichier en mode écriture et de placer le curseur à la fin du fichier. Le fichier est créé s’il n’existe pas. La chaine de caractères « \r\n » permet d’effectuer un saut de ligne pour écrire le texte suivant en début de la ligne en dessous. Sans cela, le texte continue juste à la fin du texte.
Ecrire à la fin d’un fichier avec file_put_contents()
<?php $nomdefichier = 'fichier.txt'; $contenudufichier = 'Du texte à la fin du fichier'; $unautrecontenudufichier = "\r\n".'Un autre texte à la fin du fichier'; //file_put_contents permet d'ouvrir, d'écrire et de fermer le fichier // donc revient à utiliser fopen(), fwrite() et fclose() successivement file_put_contents($nomdefichier, $contenudufichier, FILE_APPEND); file_put_contents($nomdefichier, $unautrecontenudufichier, FILE_APPEND); ?>
La fonction file_put_contents sans le paramètre FILE_APPEND va écraser le fichier existant. Si le fichier n’existe pas, il sera créé.