fread
(PHP 4, PHP 5)
fread — Leitura binary-safe de arquivo
Descrição
$handle
, int $length
)
fread() lê até
length bytes do ponteiro de arquivo
informado em handle. A leitura é interrompida quando
uma das seguintes condições são satisfeitas:
-
lengthbytes foram lidos - EOF (end of file - final do arquivo) é alcançado
- um pacote tornou-se disponível (para network streams)
- 8192 bytes foram lidos (depois de abrir um stream)
Parâmetros
Valor Retornado
Retorna a string lida ou FALSE em caso de erro.
Exemplos
Example #1 Um simples exemplo de fread()
<?php
// lê o conteúdo do arquivo para uma string
$filename = "/usr/local/qualquer.txt";
$handle = fopen ($filename, "r");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>
Example #2 Exemplo de fread() binário
Em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows) o arquivo tem que ser aberto com 'b' incluído no parâmetro 'mode' na fopen().
<?php
$filename = "c:\\files\\figura.gif";
$handle = fopen ($filename, "rb");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>
Example #3 Exemplos de fread() remoto
Ao ler de qualquer coisa que não seja um arquivo local comum, tal como de streams retornados ao ler arquivos remotos, ou de popen() e fsockopen(), a leitura irá parar depois que um pacote esteja disponível. Isto significa que você deve juntar os dados em blocos como demonstrado nos exemplos abaixo.
<?php
// Para o PHP 5 e superior
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
Notas
Note:
Se você quer apenas pegar o conteúdo de um arquivo para uma string, utilize file_get_contents() que tem uma performance ainda melhor que o código acima.
Veja Também
- fwrite() - Escrita binary-safe em arquivos
- fopen() - Abre um arquivo ou URL
- fsockopen() - Abre um socket de conexão Internet ou de domínio Unix
- popen() - Abre um processo como ponteiro de arquivo
- fgets() - Lê uma linha de um ponteiro de arquivo
- fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
- fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
- file() - Lê todo o arquivo para um array
- fpassthru() - Imprime todo os dados restantes de um ponteiro de arquivo