(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — Prüft, ob eine Datei existiert und lesbar ist
Gibt true zurück, wenn die Datei existiert und lesbar ist.
filenamePfad zur Datei.
Gibt true zurück, wenn die Datei oder das Verzeichnis (angegeben durch
filename) existiert und lesbar ist, sonst false .
Im Fehlerfall wird eine E_WARNING ausgegeben.
Beispiel #1 is_readable()-Beispiel
<?php
$filename = 'test.txt';
if (is_readable($filename)) {
echo 'Die Datei ist lesbar';
} else {
echo 'Die Datei ist nicht lesbar';
}
?>Bedenken Sie, dass PHP mit der Benutzer-ID auf die Datei zugreift, unter der der Webserver läuft (oftmals ist dies 'nobody').
Hinweis: Die Ergebnisse dieser Funktion werden zwischengespeichert. Weitere Details sind bei clearstatcache() zu finden.
Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.
Hinweis:
Die Prüfung wird mit der echten UID/GID anstelle der effektiven ID ausgeführt.
Diese Funktion kann true für Verzeichnisse zurück liefern. Mittels
is_dir() kann zwischen Dateien und Verzeichnissen
unterschieden werden.
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.Note that is_readable() will return false for streams, eg, php://stdin.This will return false on urls, even if file_get_contents() reads them. So, only for files.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));
}
}
?>