Comment écrire à la fin d’un fichier texte avec PHP

Comment écrire à la fin d'un fichier texte avec PHP

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