Arquivo de leitura PHP

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|falseLinguagem 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 da fopen()função.
  • O $lengthespecifica 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 $lengthparâmetro.

A fread()função retorna o conteúdo do arquivo ou falsese houver falha na leitura.

A fread()função interrompe a leitura do arquivo quando o $lengthnú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 truese $streamestiver 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|falseLinguagem 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 $lengthargumento, 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.txtlocalizado no publicdiretó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.txtarquivo 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.txtarquivo 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.txtarquivo:

<?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,64Linguagem 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.txtarquivo 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *