readfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readfileMuestra un fichero

Descripción

readfile(string $filename, bool $use_include_path = false, ?resource $context = null): int|false

Lee un fichero y lo envía al buffer de salida.

Parámetros

filename

El fichero a leer.

use_include_path

Puede utilizarse el segundo argumento opcional para explorar el directorio include_path, pasando el valor de true.

context

Nota: Un resource de contexto de flujo.

Valores devueltos

Devuelve el número de bytes leídos desde el fichero en caso de éxito, o false si ocurre un error

Errores/Excepciones

En caso de fallo, se emitirá una advertencia de tipo E_WARNING.

Ejemplos

Ejemplo #1 Forzar la descarga utilizando readfile()

<?php
$file
= 'monkey.gif';

if (
file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>

Resultado del ejemplo anterior es similar a :

Ventana de apertura / guardado

Notas

Nota:

readfile() no presentará problemas de memoria, incluso al enviar ficheros grandes. Si se encuentran este tipo de problemas, asegúrese de que el buffer de salida está desactivado con la función ob_get_level().

Sugerencia

Puede utilizar una URL como nombre de archivo con esta función, si el gestor fopen ha sido activado. Véase fopen() para más detalles sobre cómo especificar el nombre del archivo. Consulte Protocolos y Envolturas soportados para más información sobre las capacidades de los diferentes gestores, las notas sobre su uso, así como la información sobre las variables predefinidas que proporcionan.

Ver también