fpassthru

(PHP 3, 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 correttamente aperto da fopen(), popen() o fsockopen(). You may need to call rewind() to reset the file pointer to the beginning of the file if you have already written data to the file. Il file viene chiuso quando fpassthru() viene conclusa la sua lettura (lasciando handle 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.

Esempio 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()