Forum und email

fread

(PHP 4, PHP 5)

fread — Leitura binary-safe de arquivo

Descrição

string fread ( resource $handle , int $length )

fread() lê até length bytes do ponteiro de arquivo informado em handle . A leitura é interrompida quando length bytes tenham sido lidos, o fim do arquivo (EOF) seja alcançado, (para streams de rede) quando um pacote se torna disponível, ou (depois de abrir stream de usuário) quando 8192 bytes tenham sido lidos, o que ocorrer primeiro.

Parâmetros

handle

Um ponteiro para o sistema de arquivos resource é tipicamente criado usando fopen().

length

Até length número de bytes lidos.

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 ($handlefilesize ($filename));
fclose ($handle);
?>

Example#2 Exemplo de fread() binário

Aviso

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 ($handlefilesize ($filename));
fclose ($handle);
?>

Example#3 Exemplos de fread() remoto

Aviso

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("https://www.example.com/""rb");
$contents stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle 
fopen("https://www.example.com/""rb");
$contents '';
while (!
feof($handle)) {
  
$contents .= fread($handle8192);
}
fclose($handle);
?>

Notas

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.