Avatar ·

Como ler eficientemente um arquivo grande linha por linha em PHP sem sobrecarregar a memória?

Olá a todos! Sou um desenvolvedor PHP iniciante e me deparei com um problema ao processar arquivos grandes. Tenho um arquivo CSV de cerca de 200 MB que precisa ser processado linha por linha. Primeiro, tentei usar file_get_contents() e explode() pelo caractere de nova linha, mas o script trava com o erro "Allowed memory size exhausted". Aqui está meu código: ```php $data = file_get_contents('big_file.csv'); $lines = explode("\n", $data); foreach ($lines as $line) { // Processamento da linha echo $line . "\n"; } ``` Entendo que file_get_contents() carrega o arquivo inteiro na memória, o que causa o problema. Mas como ler o arquivo corretamente linha por linha? Ouvi falar sobre fopen() e fgets(), mas não tenho certeza de como usá-los corretamente para arquivos grandes. Também estou interessado em como processar arquivos maiores que 1 GB — existem algumas armadilhas? E é possível otimizar a leitura para não gastar memória extra? Desde já, obrigado pela ajuda! <<>>

Usando fopen() e fg