is_readable

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

is_readableIndica si un fichero existe y es legible

Descripción

is_readable(string $filename): bool

Indica si un fichero existe y es legible.

Parámetros

filename

La ruta del fichero.

Valores devueltos

Devuelve true si el fichero o directorio especificado por filename existe y es legible, false si no.

Ejemplos

Ejemplo #1 Ejemplo de is_readable()

<?php
$nombre_fichero
= 'prueba.txt';
if (
is_readable($nombre_fichero)) {
echo
'El fichero es legible';
} else {
echo
'El fichero no es legible';
}
?>

Errores/Excepciones

En caso de fallo, se emite un E_WARNING.

Notas

Tenga en cuenta que PHP puede estar accediendo al fichero bajo el id de ususario por el que se está ejecutando el servidor web (a menudo 'nobody'). Las limitaciones del modo seguro no se toman en cuenta antes de PHP 5.1.5.

Nota: Los resultados de esta función son guardados en caché. Para más información ver clearstatcache().

Sugerencia

Desde PHP 5.0.0, esta función también puede usarse con algunos URL wrappers. Consultar Protocolos y Envolturas soportados para deter4minar qué envolturas soportan la familia de funcionalidad de stat().

Nota:

La comprobación se realiza usando el UID/GID real en vez del efectivo.

Esta función podría devolver true si se le proporcina un directorio. Use is_dir() para distinguir entre ficheros y directorios.

Ver también

  • is_writable() - Indica si un archivo existe y es escribible
  • file_exists() - Comprueba si existe un fichero o directorio
  • fgets() - Obtiene una línea desde el puntero a un fichero

add a note add a note

User Contributed Notes 4 notes

up
11
jo at durchholz dot org
18 years ago
DrTebi at yahoo dot com is wrong. is_readable() checks whether you can do file_get_contents() or similar calls, no more, no less. If the location given returns a 500 or 403 error, you can still read() that (you'll simply get the error page), but it's still read()able. Using is_readable to check the validity of a URL is simply the wrong function.
up
0
arikan134 at gmail dot com
8 years ago
is readable recursively. Check all sub directories and files readable
<?php
function is_readable_r($dir) {
    if (
is_dir($dir)) {
        if(
is_readable($dir)){
           
$objects = scandir($dir);
            foreach (
$objects as $object) {
                if (
$object != "." && $object != "..") {
                    if (!
is_readable_r($dir."/".$object)) return false;
                    else continue;
                }
            }   
            return
true;   
        }else{
            return
false;
        }
       
    }else if(
file_exists($dir)){
        return (
is_readable($dir));
       
    }
}

?>
up
0
pgl at yoyo dot org
15 years ago
Note that is_readable() will return false for streams, eg, php://stdin.
up
-40
Anonymous
19 years ago
Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.
To Top