fileperms
(PHP 4, PHP 5)
fileperms — Liefert die Zugriffsrechte einer Datei
Beschreibung
$filename
)Liefert Zugriffsrechte für die übergebene Datei.
Parameter-Liste
-
filename -
Pfad zu der Datei.
Rückgabewerte
Gibt die Zugriffsrechte einer Datei als numerischen Modus zurück. Die
niedrigen Bits dieses Modus sind die gleichen wie die Zugriffsrechte, die
chmod() erwartet, allerdings beinhaltet der Rückgabewert
auf den meisten Plattformen ebenfalls Informationen über den Typ der Datei,
die als filename angegeben wurde. Die Beispiele weiter
unten demonstrieren wie der Rückgabewert auf spezifische Zugriffsrechte und
Datei-Typen auf POSIX Systemen einschließlich Linux und Max OS X geprüft
werden kann.
Beispiele
Beispiel #1 Zeige Rechte als Oktal-Wert an
<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
1777 0644
Beispiel #2 Zeige komplette Rechte an
<?php
$perms = fileperms('/etc/passwd');
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolischer Link
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
// Regulär
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Verzeichnis
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Unknown
$info = 'u';
}
// Besitzer
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Gruppe
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// Andere
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo $info;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
-rw-r--r--
Fehler/Exceptions
Im Fehlerfall wird eine E_WARNING ausgegeben.
Anmerkungen
Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().
Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle and Wrappers nach, welcher Wrapper die Funktionalität von stat() unterstützt.
Siehe auch
- chmod() - Ändert die Zugriffsrechte einer Datei
- is_readable() - Prüft, ob eine Datei existiert und lesbar ist
- stat() - Sammelt Informationen über eine Datei