En php je connais deux méthodes pour lire un fichier ligne par ligne. La première utilise la fonction file, et la seconde utilise la fonction fgets. Voici deux exemples qui illustrent ces différentes méthodes :
Lecture d'un fichier avec file
La fonction file permet de lire un fichier ligne par ligne, cependant il est préférable de l'utiliser avec précaution sur des fichiers volumineux car elle charge tout le contenu du fichier en mémoire et peut entrainer une erreur fatale out of memory.
<?php
/*Ouvre le fichier et retourne un tableau contenant une ligne par élément*/
$lines = file('/path/file.txt');
/*On parcourt le tableau $lines et on affiche le contenu de chaque ligne précédée de son numéro*/
foreach ($lines as $lineNumber => $lineContent)
{
echo $lineNumber,' ',$lineContent;
}
?>
Lecture d'un fichier avec fgets
Contrairement à file, l'utilisation de fgets pour la lecture d'un fichier permet de travailler sur des gros fichiers car elle ne charge en mémoire qu'une seule ligne à la fois.
<?php
/*Ouverture du fichier en lecture seule*/
$handle = fopen('/path/file.txt', 'r');
/*Si on a réussi à ouvrir le fichier*/
if ($handle)
{
/*Tant que l'on est pas à la fin du fichier*/
while (!feof($handle))
{
/*On lit la ligne courante*/
$buffer = fgets($handle);
/*On l'affiche*/
echo $buffer;
}
/*On ferme le fichier*/
fclose($handle);
}
?>
Références
- Manuel de file
- Manuel de fgets
Image : Paulbence