fpassthru()
¿Qué es la función fpassthru()?
La función fpassthru() es una función integrada de PHP que lee el contenido de un archivo desde la posición actual del puntero de archivo hasta el final del mismo y lo escribe directamente en el flujo de salida estándar. Esta función se utiliza para leer archivos grandes sin cargarlos en la memoria.
Devuelve el número de bytes escritos desde el puntero de archivo dado a la salida en caso de éxito, o false en caso de fallo.
A continuación se muestra la sintaxis básica de la función fpassthru():
La sintaxis PHP de fpassthru()
fpassthru(file);Donde file es el puntero de archivo desde el cual se leerá.
¿Cómo usar la función fpassthru()?
El uso de la función fpassthru() es sencillo. Sigue estos pasos:
- Abre el archivo con
fopen()y asegúrate de que el puntero de archivo esté en la posición de inicio deseada. - Llama a
fpassthru()con el puntero de archivo. Leerá hasta el final del archivo (EOF) y escribirá en el flujo de salida. - Verifica el valor de retorno para confirmar el éxito y luego cierra el archivo con
fclose().
A continuación se muestra un fragmento de código de ejemplo que demuestra cómo usar la función fpassthru():
¿Cómo usar la función fpassthru()?
<?php
$filename = 'largefile.txt';
$file = fopen($filename, 'r');
if ($file) {
if (fpassthru($file) === false) {
echo "Error reading file!";
}
fclose($file);
} else {
echo "Unable to open file!";
}En este ejemplo, abrimos el archivo largefile.txt utilizando la función fopen() en modo de solo lectura. Comprobamos si el archivo se abrió correctamente mediante una instrucción if y, en caso afirmativo, mostramos el contenido del archivo en el flujo de salida estándar utilizando la función fpassthru(). Verificamos el valor de retorno para manejar posibles errores de lectura antes de cerrarlo con la función fclose().
Nota sobre el almacenamiento en búfer de salida: Si el almacenamiento en búfer de salida de PHP está activo (por ejemplo, mediante
ob_start()),fpassthru()escribirá directamente en el búfer de salida actual en lugar de enviar los datos inmediatamente al navegador.
Conclusión
La función fpassthru() es una herramienta útil en PHP para leer archivos grandes sin cargarlos en la memoria. Siguiendo los pasos descritos en esta guía, puedes usar fácilmente la función fpassthru() en tus proyectos de PHP para leer el contenido de los archivos desde la posición actual del puntero y mostrarlos en el flujo de salida estándar.
Práctica
¿Cuál es el propósito de la función fpassthru() en PHP?