(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:
sono stati letti length byte
è stata raggiunta EOF (end of file - fine del file)
un pacchetto diventa disponibile o si verifica un socket timeout (nel caso di stream sulla rete)
se lo stream è letto attraverso un buffer e non rappresenta un normale file, viene fatta almeno una lettura di un numero di byte uguale alla dimensione del chunk (di solito 8192); a seconda dei dati precedentemente messi nel buffer, la dimensione dei dati restituiti può essere maggiore della dimensione del chunk.
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.