Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in die PHP-Funktion – fileperms(): Dateiberechtigungen abrufen

Einführung in die PHP-Funktion – fileperms(): Dateiberechtigungen abrufen

WBOY
WBOYOriginal
2023-07-25 15:36:161715Durchsuche

PHP-Funktionseinführung – fileperms(): Dateiberechtigungen abrufen

In der PHP-Entwicklung müssen wir manchmal Informationen zu Dateiberechtigungen einholen, z. B. um festzustellen, ob die Datei lesbar, beschreibbar oder ausführbar ist. Die PHP-Funktion fileperms() kann uns dabei helfen, diese Funktion zu erreichen. In diesem Artikel werden die Verwendung und Beispiele der Funktion fileperms() im Detail vorgestellt.

Die Funktion fileperms() wird verwendet, um die Berechtigungen der Datei zu erhalten. Sein Prototyp lautet wie folgt:

string fileperms (string $filename)

wobei $filename der Dateipfad ist, um Berechtigungsinformationen zu erhalten. Die Funktion gibt eine Zeichenfolge zurück, die die Berechtigungen der Datei darstellt.

Hier ist ein einfaches Beispiel, das zeigt, wie man die Funktion fileperms() verwendet, um die Berechtigungen einer Datei zu erhalten:

<?php
    $filename = 'test.txt';
    $perms = fileperms($filename);
    echo "文件{$filename}的权限是:{$perms}";
?>

In diesem Beispiel haben wir test.txt als Datei verwendet, um Berechtigungen zu erhalten. Die von der Funktion fileperms() zurückgegebenen Berechtigungsinformationen werden in der Variablen $perms gespeichert und dann über die Echo-Anweisung an den Benutzer ausgegeben.

Wenn wir den obigen Code ausführen, könnte die Ausgabe so aussehen:

文件test.txt的权限是:33204

In diesem Beispiel können wir sehen, dass die von der Funktion zurückgegebene Berechtigung eine Ganzzahl ist. Tatsächlich stellt diese Ganzzahl die Berechtigungen der Datei dar, wobei die unteren 9 Bits zur Identifizierung der Lese-, Schreib- und Ausführungsberechtigungen der Datei verwendet werden. Darunter:

  • Die erste Ziffer gibt an, ob es ausführbar ist;
  • Die zweite Ziffer gibt an, ob es geschrieben werden kann;
  • Die dritte Ziffer gibt an, ob es lesbar ist.

Die zurückgegebene Ganzzahl verwendet unterschiedliche Bits im Speicher, um diese drei Berechtigungen zu speichern. Daher müssen einige Bitoperationen verwendet werden, um die spezifischen Berechtigungen zu erhalten.

Hier ist eine Hilfsfunktion, die die von fileperms() zurückgegebene Ganzzahl in eine lesbare Berechtigungszeichenfolge umwandelt:

<?php
    function format_perms($perms) {
        $result = '';
        if (($perms & 0xC000) == 0xC000) {
            $result .= 's';
        } elseif (($perms & 0xA000) == 0xA000) {
            $result .= 'l';
        } elseif (($perms & 0x8000) == 0x8000) {
            $result .= '-';
        } elseif (($perms & 0x6000) == 0x6000) {
            $result .= 'b';
        } elseif (($perms & 0x4000) == 0x4000) {
            $result .= 'd';
        } elseif (($perms & 0x2000) == 0x2000) {
            $result .= 'c';
        } elseif (($perms & 0x1000) == 0x1000) {
            $result .= 'p';
        } else {
            $result .= 'u';
        }
    
        if (($perms & 0x0100) == 0x0100) {
            $result .= 'r';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0080) == 0x0080) {
            $result .= 'w';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0040) == 0x0040) {
            if ($perms & 0x0800) {
                $result .= 's';
            } else {
                $result .= 'x';
            }
        } else {
            if (($perms & 0x0800) == 0x0800) {
                $result .= 'S';
            } else {
                $result .= '-';
            }
        }
    
        if (($perms & 0x0020) == 0x0020) {
            $result .= 'r';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0010) == 0x0010) {
            $result .= 'w';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0008) == 0x0008) {
            if ($perms & 0x0400) {
                $result .= 't';
            } else {
                $result .= 'x';
            }
        } else {
            if (($perms & 0x0400) == 0x0400) {
                $result .= 'T';
            } else {
                $result .= '-';
            }
        }
    
        if (($perms & 0x0004) == 0x0004) {
            $result .= 'r';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0002) == 0x0002) {
            $result .= 'w';
        } else {
            $result .= '-';
        }
    
        if (($perms & 0x0001) == 0x0001) {
            $result .= 'x';
        } else {
            $result .= '-';
        }
    
        return $result;
    }
    
    $filename = 'test.txt';
    $perms = fileperms($filename);
    $formatted_perms = format_perms($perms);
    
    echo "文件{$filename}的权限是:{$formatted_perms}";
?>

Wenn wir diesen Code ausführen, könnte die Ausgabe so aussehen:

文件test.txt的权限是:-rw-r--r--

In diesem Beispiel definieren wir eine Hilfsfunktion format_perms() wird bereitgestellt, um die von fileperms() zurückgegebene Ganzzahl in eine lesbare Berechtigungszeichenfolge umzuwandeln. Schließlich verwenden wir die Echo-Anweisung, um die formatierte Berechtigungszeichenfolge an den Benutzer auszugeben.

Zusammenfassung:

In der PHP-Entwicklung müssen wir häufig die Berechtigungsinformationen von Dateien einholen. Durch die Verwendung der Funktion fileperms() können wir ganz einfach die Berechtigungen einer Datei erhalten. Dieser Artikel beschreibt die Verwendung der Funktion fileperms() und stellt Beispielcode bereit. Mit dieser Funktion können wir sicherstellen, dass Vorgänge an Dateien den Berechtigungsanforderungen entsprechen.

Ich hoffe, dass Sie durch diesen Artikel die Funktion fileperms() besser verstehen und verwenden und dadurch Ihre PHP-Entwicklungsfähigkeiten verbessern können.

Das obige ist der detaillierte Inhalt vonEinführung in die PHP-Funktion – fileperms(): Dateiberechtigungen abrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn