fpassthru

(PHP 3, PHP 4, PHP 5)

fpassthru -- Imprime todos los datos restantes en un apuntador de archivo

Descripción

int fpassthru ( resource gestor )

Lee hasta EOF en el apuntador de archivo dado a partir de la posición actual y escribe los resultados en el búfer de salida.

Si ocurre un error, fpassthru() devuelve FALSE. De lo contrario, fpassthru() devuelve el número de caracteres leídos desde gestor y pasados a la salida.

El puntero de fichero debe de ser valido y debe de apuntar a un fichero abierto con exito por fopen() o fsockopen().

Puede que necesite llamar rewind() para restablecer el apuntador de archivo al comienzo de éste si ya ha escrito datos en el archivo.

Si tan sólo quiere volcar el contenido de un archivo al búfer de salida, sin modificarlo o buscar un desplazamiento en particular, puede que quiera usar la función readfile(), la cual le ahorra la llamada a fopen().

Nota: Cuando se usa fpassthru() sobre un archivo binario en sistemas Windows, debe asegurarse de abrir el archivo en modo binario, agregando el valor b al modo usado en la llamada a fopen().

Es recomendable usar la bandera b cuando trate con archivos binarios, incluso si su sistema no lo requiere, de modo que sus scripts sean más portables.

Ejemplo 1. Uso de fpassthru() con archivos binarios

<?php

// abrir el archivo en modo binario
$nombre = './img/ok.png';
$aa = fopen($nombre, 'rb');

// enviar las cabeceras correctas
header("Content-Type: image/png");
header("Content-Length: " . filesize($nombre));

// volcar la imagen y detener el script
fpassthru($aa);
exit;

?>

Vea también readfile(), fopen(), popen(), y fsockopen()