fread

Legge un file salvaguardando la corrispondenza binaria

fread(resource $stream, int $length)

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.

stream Fs file pointer length Fino a length numero di byte letti.

Restituisce la stringa letta Return falseforfailure.

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); ?>

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); ?>

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.

fwrite fopen fsockopen popen fgets fgetss fscanf file fpassthru fseek ftell rewind unpack