Como ler um arquivo grande linha por linha em PHP
-
Utilize
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 -
Utilize
stream_get_line()
Função para 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:
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:
.
é removido da saída.