Maison > développement back-end > tutoriel php > Introduction à la fonction PHP — fileperms() : obtenir les autorisations sur les fichiers

Introduction à la fonction PHP — fileperms() : obtenir les autorisations sur les fichiers

WBOY
Libérer: 2023-07-25 15:38:01
original
1748 Les gens l'ont consulté

Introduction à la fonction PHP — fileperms() : obtenir les autorisations de fichier

Dans le développement PHP, nous devons parfois obtenir des informations sur les autorisations de fichier, par exemple pour déterminer si le fichier est lisible, inscriptible ou exécutable. La fonction PHP fileperms() peut nous aider à réaliser cette fonction. Cet article présentera en détail l'utilisation et des exemples de la fonction fileperms().

La fonction fileperms() est utilisée pour obtenir les autorisations du fichier. Son prototype est le suivant :

string fileperms (string $filename)

où $filename est le chemin du fichier pour obtenir les informations d'autorisation. La fonction renvoie une chaîne représentant les autorisations du fichier.

Voici un exemple simple montrant comment utiliser la fonction fileperms() pour obtenir les autorisations d'un fichier :

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

Dans cet exemple, nous avons utilisé test.txt comme fichier pour obtenir les autorisations. Les informations d'autorisation renvoyées par la fonction fileperms() sont stockées dans la variable $perms, puis les informations d'autorisation sont transmises à l'utilisateur via l'instruction echo.

Si nous exécutons le code ci-dessus, le résultat pourrait ressembler à ceci :

文件test.txt的权限是:33204
Copier après la connexion

Dans cet exemple, nous pouvons voir que l'autorisation renvoyée par la fonction est un entier. En fait, cet entier représente les autorisations du fichier, les 9 bits inférieurs étant utilisés pour identifier les autorisations de lecture, d'écriture et d'exécution du fichier. Parmi eux :

  • Le premier chiffre indique s'il est exécutable ;
  • Le deuxième chiffre indique s'il peut être écrit ;
  • Le troisième chiffre indique s'il peut être lu ;

L'entier renvoyé utilise différents bits en mémoire pour stocker ces trois autorisations, donc certaines opérations sur les bits doivent être utilisées pour obtenir les autorisations spécifiques.

Voici une fonction d'assistance qui convertit l'entier renvoyé par fileperms() en une chaîne d'autorisation lisible :

<?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}";
?>
Copier après la connexion

Si nous exécutons ce code, le résultat pourrait ressembler à ceci :

文件test.txt的权限是:-rw-r--r--
Copier après la connexion

Dans cet exemple, nous définissons une fonction auxiliaire format_perms() est fourni pour convertir l'entier renvoyé par fileperms() en une chaîne d'autorisation lisible. Enfin, nous utilisons l'instruction echo pour afficher la chaîne d'autorisation formatée à l'utilisateur.

Résumé :

Dans le développement PHP, nous avons souvent besoin d'obtenir les informations d'autorisation des fichiers. En utilisant la fonction fileperms(), nous pouvons facilement obtenir les autorisations d'un fichier. Cet article détaille l'utilisation de la fonction fileperms() et fournit un exemple de code. Grâce à cette fonction, nous pouvons garantir que les opérations sur les fichiers sont conformes aux exigences d'autorisation.

J'espère qu'à travers cet article, vous pourrez mieux comprendre et utiliser la fonction fileperms(), améliorant ainsi vos capacités de développement PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal