Avatar ·

Comment lire efficacement un grand fichier ligne par ligne en PHP sans surcharger la mémoire ?

Bonjour à tous ! Je suis un développeur PHP débutant et j'ai rencontré un problème lors du traitement de gros fichiers. J'ai un fichier CSV d'environ 200 Mo que je dois traiter ligne par ligne. J'ai d'abord essayé d'utiliser file_get_contents() et explode() avec le caractère de nouvelle ligne, mais le script plante avec l'erreur "Allowed memory size exhausted". Voici mon code : ```php $data = file_get_contents('big_file.csv'); $lines = explode("\n", $data); foreach ($lines as $line) { // Traitement de la ligne echo $line . "\n"; } ``` Je comprends que file_get_contents() charge tout le fichier en mémoire, ce qui cause le problème. Mais comment lire correctement un fichier ligne par ligne ? J'ai entendu parler de fopen() et fgets(), mais je ne suis pas sûr de comment les utiliser correctement pour les gros fichiers. Je m'intéresse aussi à la façon de traiter des fichiers de plus de 1 Go — y a-t-il des pièges à éviter ? Et peut-on optimiser la lecture pour ne pas gaspiller de mémoire ? Merci d'avance pour votre aide ! <<>>

Utilisation de fopen() et fg