(PHP 4, PHP 5, PHP 7)
fpassthru — Escribe toda la información restante de un puntero a un archivo
$handle
) : intLee hasta EOF en el puntero al archivo dado desde la posición actual y escribe los resultados en el buffer de salida.
Puede necesitar llamar a rewind() para reiniciar el puntero al archivo al principio del archivo si ya se ha escrito información en el archivo.
Si sólo quiere verter los contenidos de un archivo en el buffer de salida, sin modificarlo primero o buscar un índice en particular, puede usar la función readfile(), la cual le libera de llamar a fopen().
handle
El fichero al que se apunta debe ser válido, y debe apuntar a un fichero abierto por fopen() o fsockopen() (y que todavía no esté cerrado por fclose()).
Si se produjo un error, fpassthru() devuelve
FALSE
. De otro modo, fpassthru() devuelve
el número de caracteres leídos desde handle
y pasados hacia la salida.
Ejemplo #1 Usar fpassthru() con archivos binarios
<?php
// abre el archivo en modo binario
$nombre = './img/ok.png';
$fp = fopen($nombre, 'rb');
// envía las cabeceras correctas
header("Content-Type: image/png");
header("Content-Length: " . filesize($nombre));
// vuelca la imagen y detiene el script
fpassthru($fp);
exit;
?>
Nota:
Cuando se usa fpassthru() sobre un archivo binario en sistemas Windows, debería asegurarse de abrir el archivo en modo binario añadiendo b al modo usado en la llamada a fopen().
Se le anima a usar la bandera b cuando trata con archivos binarios, incluso si su sistema no lo requiere, por lo que sus scripts serán más portables.