Comment lire un fichier ligne par ligne en php, sans le charger complètement en mémoire. Parce que mon fichier est trop grand pour ouvrir en mémoire, j'ai toujours eu une erreur d'échappement de la mémoire. La taille du fichier est de 1Go.
Réponses
Trop de publicités?Vous pouvez utiliser une classe d'interface orientée objet pour un fichier - SplFileObject http://php.net/manual/en/splfileobject.fgets.php (PHP 5> = 5.1.0)
<?php
$file = new SplFileObject("file.txt");
while (!$file->eof()) {
echo $file->fgets();
}
$file = null;
?>
Soyez prudent avec le truc 'while (! Feof ... fgets ()', les fgets peuvent obtenir une erreur (returnfing false) et boucler pour toujours sans atteindre la fin du fichier codaddict était le plus proche d'être correct mais quand votre 'while fgets' boucle se termine, vérifiez feof, sinon vrai, alors vous avez eu une erreur.