(PHP 4, PHP 5, PHP 7, PHP 8)
fread — Legge un file salvaguardando la corrispondenza binaria
fread() legge fino a
length
byte dal puntatore al file
indicato da stream
. La lettura finisce quando una
delle seguenti condizioni è raggiunta:
length
byte
Restituisce la stringa letta o false
in caso di fallimento.
Example #1 Un semplice esempio di fread()
<?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);
?>
Example #2 Esempio di fread() binario
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);
?>
Example #3 Esempi di fread() remoti
Quando si legge da qualsiasi cosa non sia un normale file locale, come gli stream restituiti leggendo da file remoti o da popen() e fsockopen(), la lettura si fermerà dopo che un pacchetto si è reso disponibile. Questo significa che si evono raccogliere i dati in blocchi come illustrato nell'esempio seguente.
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
exit("Failed to open stream to URL");
}
$contents = '';
while (!feof($handle)) {
$contents .=fread($handle, 8192);
}
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.
Nota:
Si noti che fread() legge dalla posizione attuale del puntatore al file. Usare ftell() per trovare la posizione attuale del puntatore e rewind() per riportare il puntatore all'inizio del file.