Avatar ·

Cómo leer eficientemente un archivo grande línea por línea en PHP sin sobrecargar la memoria

¡Hola a todos! Soy un desarrollador PHP principiante y me encontré con un problema al procesar archivos grandes. Tengo un archivo CSV de aproximadamente 200 MB que necesita ser procesado línea por línea. Primero intenté usar file_get_contents() y explode() por el carácter de nueva línea, pero el script falla con el error "Allowed memory size exhausted". Aquí está mi código: ```php $data = file_get_contents('big_file.csv'); $lines = explode("\n", $data); foreach ($lines as $line) { // Procesar línea echo $line . "\n"; } ``` Entiendo que file_get_contents() carga todo el archivo en memoria, lo que causa el problema. Pero, ¿cómo leer correctamente el archivo línea por línea? He oído sobre fopen() y fgets(), pero no estoy seguro de cómo usarlos correctamente para archivos grandes. También me interesa saber cómo manejar archivos de más de 1 GB: ¿hay algún inconveniente? ¿Y se puede optimizar la lectura para no gastar memoria extra? ¡Gracias de antemano por la ayuda! <<>>

Uso de fopen() y fg