fileperms

(PHP 4, PHP 5, PHP 7)

filepermsLiefert die Zugriffsrechte einer Datei

Beschreibung

fileperms ( string $filename ) : int

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 macOS 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

  • chmod() - Ändert die Zugriffsrechte einer Datei
  • is_readable() - Prüft, ob eine Datei existiert und lesbar ist
  • stat() - Sammelt Informationen über eine Datei