Leia arquivos de texto em PHP

Subodh Poudel 30 janeiro 2023
  1. Use a função fgets() para ler arquivos de texto linha por linha em PHP
  2. Use a função file() para ler arquivos de texto linha por linha em PHP
  3. Use as funções file_get_contents() e explode() para ler o arquivo linha por linha em PHP
Leia arquivos de texto em PHP

Este artigo apresentará métodos para ler arquivos de texto linha por linha em PHP.

Use a função fgets() para ler arquivos de texto linha por linha em PHP

Podemos usar a função fgets() com um loop while para ler arquivos de texto linha por linha em PHP. A função retorna uma linha se houver uma linha e retorna false se não houver mais linhas para ler. Leva dois parâmetros. A sintaxe é a seguinte.

fgets($file, $length)

Aqui, $file se assemelha a um ponteiro de arquivo que aponta para um arquivo aberto com sucesso. A opção $length, opcional, denota o número de bytes a serem lidos.

Podemos usar a função open() para ler o arquivo e então usar o loop while para percorrer cada linha com a função fgets(). Temos um arquivo de texto abc.txt contendo o seguinte conteúdo.

Hi
How are you
Have a great day 

Por exemplo, crie uma variável $txt_file e escreva a função fopen() nela. Abra o arquivo abc.txt no modo r. Crie uma variável de contador de linha $a e atribua o valor 1 a ela. Em seguida, crie um loop while. Dentro do parêntese do loop, escreva a função fgets() com $text_file como parâmetro. Atribua a função a uma variável $line no loop. Imprima a variável $line, concatenando-a com a variável $a dentro do corpo do loop. Incremente a variável $a e fora do loop, use a função fclose() para fechar o fluxo de arquivo.

Código de exemplo:

<?php
$txt_file = fopen('abc.txt','r');
$a = 1;
while ($line = fgets($txt_file)) {
 echo($a." ".$line)."<br>";
 $a++;
}
fclose($txt_file);
?>

Produção:

1 Hi 
2 How are you 
3 Have a great day

Use a função file() para ler arquivos de texto linha por linha em PHP

A função file() lê todo o arquivo em um array. A sintaxe da função file() é a seguinte.

file($filename, $flag, $context)

Aqui, $filename é o caminho do arquivo a ser lido. A opção $flag é opcional e compreende várias constantes como FILE_USE_INCLUDE_PATH, FILE_IGNORE_NEW_LINES e FILE_SKIP_EMPTY_LINES. O terceiro também é opcional, que define um recurso de contexto.

A função file() retorna o array inteiro se ele existe ou retorna falso. Podemos usar a função para ler o contexto do arquivo linha por linha com o helo da função foreach(). A função foreach() percorrerá todo o conteúdo e extrairá cada linha individualmente.

Por exemplo, armazene o caminho do arquivo em uma variável $txt_file. Escreva uma variável $lines e armazene a função file() nela com $txt_file como parâmetro. Em seguida, use a função foreach() para percorrer o conteúdo do arquivo. Use $lines como iterador e $num=>$line como valor. Dentro do corpo do loop, imprima as variáveis ​​$num e $line.

Código de exemplo:

$txt_file = 'abc.txt';

$lines = file($txt_file);
foreach ($lines as $num=>$line)
{
 echo 'Line '.$num.': '.$line.'<br/>';
}

Produção:

Line 0: Hi 
Line 1: How are you 
Line 2: Have a great day

Use as funções file_get_contents() e explode() para ler o arquivo linha por linha em PHP

A função file_get_contents() lê todo o arquivo em uma string. Ele retorna o arquivo inteiro como uma string se o conteúdo existir ou retorna falso. Podemos especificar o caminho do arquivo como parâmetro para a função. A função explode() divide uma string em um array usando um separador. A sintaxe da função explode() é a seguinte.

explode(separator, $string, $limit)

A opção separator é usada para separar $string com o número de elementos $limit enquanto retorna o valor. Podemos combinar as funções file_get_contents(), explode() e foreach() para ler o arquivo de texto linha por linha em PHP.

Por exemplo, crie uma variável $contents e escreva a função file_get_contents() nela com o filepath no parâmetro. Use a função explode() com o caractere \n como separador e $contents como string. Atribua a função a uma variável $lines. Use o loop foreach para fazer o loop $lines como $line. Em seguida, imprima a $line dentro do corpo do loop.

No exemplo abaixo, a variável $contents retorna string. Nós o dividimos em um array com o caractere de nova linha \n e imprimimos cada linha usando o loop.

Código de exemplo:

$contents=file_get_contents("abc.txt");
$lines=explode("\n",$contents);
foreach($lines as $line){
 echo $line.'<br>';

}

Produção:

Hi 
How are you 
Have a great day
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn