(PHP 4, PHP 5)
fread — Legge un file salvaguardando la corrispondenza binaria
$handle
, int $length
)
fread() legge fino a
length
byte dal puntatore al file
indicato da handle
. La lettura finisce quando sono stati letti
length
byte o è stata raggiunta EOF, o (nel caso di flussi
via rete) quando un pacchetto divnta disponibile,
in base a quale evento accada prima.
<?php
// copia il contenuto di un file in una stringa
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>
Sui sistemi che differenziano fra file di testo e binari (ad esempio Windows) il file deve essere aperto con il parametro mode di fopen() impostato a 'b'.
<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>
Quando si ricevono dati via rete o pipe, tipo quelli ottenuti leggendo da file remoti o da popen() e fsockopen(), la lettura si fermerà dopo avere ricevuto il pacchetto disponibile. Questo significa che i dati sono ricevuti a blocchi che devono essere raggruppati, come illustrato nell'esempio seguente.
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .=fread($handle, 8192);
}
$contents .= $data;
} while (true);
fclose($handle);
?>
Nota:
Se si desidera ottenere il contenuto del file in una stringa, utilizzare la funzione file_get_contents() la quale è ancora più performante del codice precedente.
Vedere anche fwrite(), fopen(), fsockopen(), popen(), fgets(), fgetss(), fscanf(), file() e fpassthru().