Leia arquivos de texto em PHP
-
Use a função
fgets()
para ler arquivos de texto linha por linha em PHP -
Use a função
file()
para ler arquivos de texto linha por linha em PHP -
Use as funções
file_get_contents()
eexplode()
para ler o arquivo linha por linha 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 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