Funções PHP |
. Glossários Funções PHP - fread ( ) |
(PHP 3, PHP 4 , PHP 5)
fread -- Leitura binary-safe de
arquivo
string fread ( resource handle, int length)
fread() lê até length bytes do ponteiro de arquivo informado em handle. A leitura é interrompida quando length bytes foram lidos ou o fim do arquivo (eof) foi alcançado, ou (para streams de rede) quando um pacote se torna disponível, o que ocorrer primeiro.
Exemplo:
<?php
// ler o conteúdo do arquivo para
uma string
$filename = "/usr/local/qualquer.txt";
$handle = fopen ($filename, "r");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>
Atenção: Em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows) o arquivo tem que ser aberto com 'b' incluído como parametro na função fopen().
<?php
$filename = "c:\\files\\figura.gif";
$handle = fopen ($filename, "rb");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>
Atenção: Quando lendo de streams de rede ou canais (pipes), como aqueles retornados pela leitura de arquivos remotos ou de popen() e proc_open(), a leitura irá parar depois que um pacote se torna disponível. Isto significa que você deve juntar os dados em blocos como demonstrado no exemplo seguinte.
<?php
$handle = fopen ("http://www.example.com/", "rb");
$conteudo = "";
do {
$data = fread($handle, 8192);
if (strlen($data) == 0) {
break;
}
$conteudo .= $data;
} while(true);
fclose ($handle);
?>
Nota: O exemplo acima tem uma performance melhor que o jeito comum usando while(!feof()), porque ele economiza o overhead de uma chamada de função por iteração.
Nota: 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(), fopen(), fsockopen(), popen(), fgets(), fgetss(), fscanf(), file() e fpassthru().