Manual do PHP
Anterior |  | Próxima

# fread

(PHP 3, 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 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.

`<?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().

Anterior | Principal | Próxima
fputs | Acima | fscanf