Forum und email

fpassthru

(PHP 4, PHP 5)

fpassthru — Invia tutti i dati rimanenti su un puntartore a file

Descrizione

int fpassthru ( resource $handle )

Legge fino a EOF sul puntatore al file dato e scrive i risultati sul buffer di output.

Se si verifica un errore, fpassthru() restituisce FALSE. In caso positivo fpassthru() restituisce il numero di caratteri letti da handle scritti in output.

Il puntatore al file deve essere valido, e deve puntare ad un file aperto con successo da fopen() o fsockopen() (e non ancora chiuso da fclose()).

Può essere necessario chiamarerewind() per resettare il puntatore al file all'inizio del file stesso nel caso si abbbia già scritto dai dati nel file. Il file viene chiuso quando si sia chiamata fpassthru() leggendolo (lasciandohandle inutilizzato).

Se desideri semplicemente inviare il contenuto di un file sul buffer di output, senza doverlo modificare o posizionarti in un particolare offset, potresti preferire readfile(), che ti salva la chiamata a fopen().

Nota: Quando si utilizza fpassthru() con file binari su sistemi Windows si dovrebbe essere certi di aprire il file in modalità binaria aggiungendo b alla modalità utilizzata nella chiamata a fopen().
Si incoraggia l'uso del flag b quando si trattano file binari, anche se il sistema non lo richiede; in questo modo si rendono gli script più trasportabili.

Example#1 Utilizzo di fpassthru() con file binari

<?php
 
// apre il file in modalità binaria
$name ".\public\dev\img\ok.png";
$fp fopen($name'rb');
 
// invia i giusti header
header("Content-Type: image/png");
header("Content-Length: " filesize($name));
 
// invia l'immagine ed esce dallo script
fpassthru($fp);
exit;
 
?>

Vedere anche readfile(), fopen(), popen() e fsockopen()