is_readable

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

is_readableIndique si un fichier existe et est accessible en lecture

Description

is_readable(string $filename): bool

Indique si un fichier existe et est accessible en lecture.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne true si le fichier ou le dossier spécifié par filename existe et est accessible en lecture, false sinon.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec is_readable()

<?php
$filename
= 'test.txt';
if (
is_readable($filename)) {
echo
'Le fichier est accessible en lecture';
} else {
echo
'Le fichier n\'est pas accessible en lecture !';
}
?>

Notes

N'oubliez pas que PHP accède aux fichiers avec les mêmes autorisations que l'utilisateur qui fait tourner le serveur web (souvent, c'est 'nobody', personne).

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Note:

La vérification est effectuée en utilisant l'UID/GID réel au lieu de l'effectif.

Cette fonction peut retourner true pour les dossiers. Utilisez la fonction is_dir() pour distinguer les fichiers et les dossiers.

Voir aussi

  • is_writable() - Indique si un fichier est accessible en écriture
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier

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