Niveau facile aujourd’hui, avec un rappel des fonctions à utiliser pour lire ou écrire un fichier texte en PHP. On sait tous plus ou moins comment faire, mais on ne se souvient jamais par coeur du code complet (en tout cas moi non !). Ca vaut donc la peine de tout regrouper sur un seul post et pouvoir copier/coller vite fait ce code dans son appli sans réfléchir ou faire d’erreurs

Lecture d’un fichier texte :

Je n’indique ici que la méthode utilisant la fonction fgets() de PHP. Il s’agit de la fonction la plus utilisée, la fonction file() notamment génère facilement des problèmes avec les fichiers trop gros, donc autant rajouter une ligne de code et avoir une lecture qui marche à tous les coups.

<?php
$filename = "/var/www/monfichier.txt";
$f = fopen($filename, 'r');
if ($f)
{
	while (!feof($f))
	{
		$line = fgets($f);
                echo $line . "<br />";
	}
	fclose($f);
}
?>

Rien de bien méchant. On ouvre le fichier en lecture seule (r), si le fopen fonctionne on va jusqu’a la fin du fichier. Fgets avec un seul paramêtre récupère la ligne suivante à chaque appel. On utilise fclose() une fois la fin de fichier atteinte pour fermer le fichier.

Ecriture dans un fichier

Petit réflexion à avoir avant de commencer pour savoir exactement ce qu’on veut faire sur le fichier, il faut choisir un mode d’écriture parmi ceux la :

Mode fopen() Description
‘r’ Lecture seule. Pointeur en début de fichier
‘r+’ Idem que r mais en lecture/écriture
‘w’ Ecriture seule. Efface si existe, créé si existe pas. Pointeur au début du fichier.
‘w+’ Idem que w mais en lecture/écriture
‘a’ Ecriture seule. Efface si existe, créé si existe pas. Pointeur à la fin du fichier.
‘a+’ Idem que w mais en lecture/écriture

 

En gros vous aller choisir entre ‘w’ et ‘a’ suivant si vous voulez effacer le fichier existant ou non
Il existe 2 autres modes : c et x. Je n’en ai jamais eu l’utilité jusqu’a présent, donc je n’alourdit pas ce tableau avec ces modes, visitez php.net pour la description.

Un code simple pour écrire du texte dans un fichier peut donc ressembler à ca :

<?php
$filename = '/var/www/monfichier.txt';
$f = fopen($filename, 'w');
fwrite($f, "ligne1 \n");
fwrite($f, "ligne2 \n");
fclose($f);
?>

Ca sera tout pour aujourd’hui, j’espère que ces extraits de code vous feront gagner un peu de temps dans vos développements

A lire également