Dateisystem
PHP Manual

fileperms

(PHP 4, PHP 5, PHP 7)

fileperms — Liefert die Zugriffsrechte einer Datei

Beschreibung

int fileperms ( string $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');

switch (
$perms & 0xF000) {
    case 
0xC000: // Socket
        
$info = 's';
        break;
    case 
0xA000: // Symbolischer Link
        
$info = 'l';
        break;
    case 
0x8000: // Regulär
        
$info = 'r';
        break;
    case 
0x6000: // Block special
        
$info = 'b';
        break;
    case 
0x4000: // Verzeichnis
        
$info = 'd';
        break;
    case 
0x2000: // Character special
        
$info = 'c';
        break;
    case 
0x1000: // FIFO pipe
        
$info = 'p';
        break;
    default: 
// unbekannt
        
$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().

Tipp

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.

Siehe auch


Dateisystem
PHP Manual