Como ler um arquivo grande linha por linha em PHP

Minahil Noor 30 janeiro 2023
  1. Utilize fgets() Função para ler um arquivo grande linha por linha em PHP
  2. Utilize file() Função para ler um arquivo grande linha por linha em PHP
  3. Utilize stream_get_line() Função para ler um arquivo grande linha por linha em PHP
Como ler um arquivo grande linha por linha em PHP

Neste artigo, vamos introduzir métodos para ler um arquivo grande linha por linha em PHP.

  • Utilizando a função fgets()
  • Utilizando a função file()
  • Utilizando a função stream_get_line()

Utilize fgets() Função para ler um arquivo grande linha por linha em PHP

A função integrada fgets() lê uma linha de um arquivo aberto. Podemos utilizar esta função para ler um arquivo grande linha por linha. A sintaxe correta para utilizar esta função é a seguinte.

fgets($fileName, $lengthOfFile);

A função fgets() tem dois parâmetros. Os detalhes de seus parâmetros são os seguintes

Parâmetros Descrição
$fileName obrigatório É o arquivo que queremos ler linha por linha.
$lengthOfFile opcional Ela especifica o tamanho do arquivo a ser lido. Seu valor padrão é de 1024 bytes.

Esta função retorna uma string de comprimento do arquivo -1 do arquivo especificado pelo usuário, se bem-sucedido. Ela retorna um False em caso de falha.

O programa abaixo mostra como podemos utilizar a função fgets() para ler um arquivo grande linha por linha. Vamos utilizar as funções fopen() e fclose() para abrir e fechar um arquivo respectivamente. Temos um arquivo de texto chamado flowers.txt que contém os detalhes das flores.

<?php 
if ($file = fopen("flowers.txt", "r")) {
    while(!feof($file)) {
        $line = fgets($file);
       echo ("$line");
    }
    fclose($file);
}   
?> 

Temos utilizado a função feof() para ler o arquivo até o final. A saída mostra o conteúdo do arquivo lido linha por linha.

Resultado:

fgets função para ler um arquivo grande linha por linha em PHP

Utilize file() Função para ler um arquivo grande linha por linha em PHP

Em PHP, também podemos utilizar a função file() para ler um arquivo linha por linha. A função file() lê um arquivo em um array linha por linha. A sintaxe correta para utilizar esta função é a seguinte:

file($fileName, $flags, $context)

A função file() aceita três parâmetros. Os detalhes de seus parâmetros são os seguintes

Parâmetros Descrição
$fileName obrigatório É o caminho onde nosso arquivo é armazenado.
$flags opcional Ela especifica as constantes que podemos usar como bandeiras para esta função. Você pode lê-lo aqui.
$context opcional É o recurso que você pode criar usando a função stream_context_create().

O programa que lê o arquivo utilizando a função file() é o seguinte:

<?php 
foreach(file('flowers.txt') as $line) {
   echo $line. "\n";
} 
?> 

Utilize stream_get_line() Função para ler um arquivo grande linha por linha em PHP

Também podemos utilizar a função stream_get_line() para ler um arquivo linha por linha. Esta função lê um arquivo até um delimitador. A sintaxe correta para utilizar esta função é a seguinte:

stream_get_line($handle, $length, $ending)

A função stream_get_line() aceita três parâmetros. Os detalhes de seus parâmetros são os seguintes

Parâmetros Descrição
$handle obrigatório É o caminho onde nosso arquivo é armazenado.
$length obrigatório Ele especifica o tamanho do arquivo a ser lido.
$ending obrigatório É um string que conta sobre o delimitador.

O programa que lê o arquivo utilizando a função stream_get_line() é o seguinte:

<?php 
$file = fopen("flowers.txt", "r+");
while ($line = stream_get_line($file, 1024 * 1024, ".")) {
  echo $line;
}
fclose($file);
?> 

Resultado:

stream_get_line( função para ler um arquivo grande linha por linha em PHP

Nota
O delimitador . é removido da saída.

Artigo relacionado - PHP File