PHP Doku:: Prüft, ob eine Datei existiert und lesbar ist - function.is-readable.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDateisystemrelevante ErweiterungenDateisystemDateisystem-Funktionenis_readable

Ein Service von Reinhard Neidl - Webprogrammierung.

Dateisystem-Funktionen

<<is_link

is_uploaded_file>>

is_readable

(PHP 4, PHP 5)

is_readablePrüft, ob eine Datei existiert und lesbar ist

Beschreibung

bool is_readable ( string $filename )

Gibt TRUE zurück, wenn die Datei existiert und lesbar ist.

Parameter-Liste

filename

Pfad zur Datei.

Rückgabewerte

Gibt TRUE zurück, wenn die Datei oder das Verzeichnis (angegeben durch filename) existiert und lesbar ist, sonst FALSE.

Beispiele

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';
}
?>

Fehler/Exceptions

Upon failure, an E_WARNING is emitted.

Anmerkungen

Bedenken Sie, dass PHP mit der Benutzer-ID auf die Datei zugreift, unter der der Webserver läuft (oftmals ist dies 'nobody'). Beschränkungen durch safe_mode werden vor PHP 5.1.5 nicht berücksichtigt.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Supported Protocols and Wrappers 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.

Siehe auch

  • is_writable() - Prüft, ob in eine Datei geschrieben werden kann
  • file_exists() - Prüft, ob eine Datei oder ein Verzeichnis existiert
  • fgets() - Liest eine Zeile von der Position des Dateizeigers


5 BenutzerBeiträge:
- Beiträge aktualisieren...
pgl at yoyo dot org
31.07.2009 16:13
Note that is_readable() will return false for streams, eg, php://stdin.
jascha át gmx dót com
7.11.2006 15:58
Safe_mode restrictions ignored means:
cant read by read() so is_readable() = false.
even if safe_mode_include_dir is set and include does works, is_readable() is false to. :(
(php5)
jo at durchholz dot org
30.01.2006 18:15
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.
DrTebi at yahoo dot com
13.10.2005 18:22
Be careful when using is_readable on symbolic links.

is_readable will return true if the file the symbolic link is pointing to is readable.

The problem is that if the server does NOT allow to follow symbolic links, is_readable will still return true, but e.g. redirecting to the sybolic link will not work. For Apache, make sure that at the server, virtual host configuration level, or inside a directory container you have set
Options +FollowSymLinks

As an example, let's say you have at the document root directory:
index.php -- the script using is_readable
my_linked_page.html -- a regular HTML page
my_link -- a link pointing to my_linked_page.html

Now in index.php:
<?php
if (is_readable('my_link')) {
 
header('Location: /my_link');
}
?>

If FollowSymLinks is forbidden, this will not work, if allowed, it will.

27.07.2005 4:08
Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)