Resumo : neste tutorial, você aprenderá como ler um arquivo usando as diversas funções integradas do PHP.
Para ler o conteúdo de um arquivo, siga estas etapas:
- Abra o arquivo para leitura usando a
fopen()
função. - Leia o conteúdo do arquivo usando a
fread()
função. - Feche o arquivo usando a
fclose()
função.
Aqui está a sintaxe da fread()
função:
fread ( resource $stream , int $length ) : string|false
Linguagem de código: PHP ( php )
A fread()
função possui dois parâmetros:
- O
$stream
é um recurso de ponteiro do sistema de arquivos, que normalmente é o resultado dafopen()
função. - O
$length
especifica o número máximo de bytes a serem lidos. Se quiser ler o arquivo inteiro, você pode passar o tamanho do arquivo para o$length
parâmetro.
A fread()
função retorna o conteúdo do arquivo ou false
se houver falha na leitura.
A fread()
função interrompe a leitura do arquivo quando o $length
número de bytes é lido ou o fim do arquivo (EOF) é atingido.
Para verificar se o ponteiro do arquivo está no final do arquivo, você pode passá-lo para a feof()
função:
feof ( resource $stream ) : bool
Linguagem de código: PHP ( php )
A feof()
função retorna true
se $stream
estiver no EOF ou ocorrer um erro. Caso contrário, ele retorna false
.
Para ler um arquivo linha por linha, você usa a fgets()
função:
fgets ( resource $handle , int $length = ? ) : string|false
Linguagem de código: PHP ( php )
Assim como a fread()
função, a fgets()
função aceita um recurso de ponteiro do sistema de arquivos e até um número de bytes para leitura. Se você omitir o $length
argumento, a fread()
função lerá a linha inteira.
Exemplos de arquivos de leitura PHP
Vejamos alguns exemplos de como ler um arquivo.
1) Leia o arquivo inteiro em uma string
Suponha que você tenha um arquivo chamado population.txt
localizado no public
diretório com o seguinte conteúdo:
1 New York New York 8,253,213
2 Los Angeles California 3,970,219
3 Chicago Illinois 2,677,643
4 Houston Texas 2,316,120
5 Phoenix Arizona 1,708,127
6 Philadelphia Pennsylvania 1,578,487
7 San Antonio Texas 1,567,118
8 San Diego California 1,422,420
9 Dallas Texas 1,343,266
10 San Jose California 1,013,616
Linguagem de código: texto simples ( texto simples )
O exemplo a seguir usa a fread()
função para ler o conteúdo do population.txt
arquivo inteiro em uma string e mostrá-lo na página da web:
<?php
$filename = './public/population.txt';
$f = fopen($filename, 'r');
if ($f) {
$contents = fread($f, filesize($filename));
fclose($f);
echo nl2br($contents);
}
Linguagem de código: HTML, XML ( xml )
Como funciona.
Primeiro, abra o population.txt
arquivo usando a fopen()
função:
$f = fopen($filename, 'r');
Linguagem de código: PHP ( php )
Segundo, leia o conteúdo de todo o arquivo usando a fread()
função; use a filesize()
função para obter o tamanho do arquivo:
$contents = fread($f, filesize($filename));
Linguagem de código: PHP ( php )
Terceiro, mostre o conteúdo do arquivo em uma página web; use a nl2br()
função para converter os caracteres de nova linha em <br>
tags.
echo nl2br($contents);
Linguagem de código: PHP ( php )
Por fim, feche o arquivo usando a fclose()
função.
Observe que a file_get_contents()
função é um atalho para abrir um arquivo, ler todo o conteúdo do arquivo em uma string e fechá-lo.
2) Leia alguns caracteres de um arquivo
Para ler alguns caracteres de um arquivo, você especifica o número de bytes a serem lidos. O exemplo a seguir usa a fread()
função para ler até 100 bytes do population.txt
arquivo:
<?php
$filename = './public/population.txt';
$f = fopen($filename, 'r');
if ($f) {
$contents = fread($f, 100);
fclose($f);
echo nl2br($contents);
}
Linguagem de código: HTML, XML ( xml )
Saída:
1 New York New York 8,253,213
2 Los Angeles California 3,970,219
3 Chicago Illinois 2,677,64
Linguagem de código: texto simples ( texto simples )
3) Leia um arquivo linha por linha
O exemplo a seguir usa a fgets()
função para ler o population.txt
arquivo linha por linha:
<?php
$filename = './public/population.txt';
$lines = [];
$f = fopen($filename, 'r');
if (!$f) {
return;
}
while (!feof($f)) {
$lines[] = fgets($f);
}
print_r($lines);
fclose($f);
Linguagem de código: HTML, XML ( xml )
Resumo
- Use a
fread()
função para ler parte ou todo o conteúdo de um arquivo. - Use a
fgets()
função para ler uma linha de um arquivo. - Use a
feof()
função para testar se o fim do arquivo foi alcançado. - Use a
filesize()
função para obter o tamanho do arquivo.