Rechercher une fonction PHP

fileperms

(PHP 4, PHP 5, PHP 7)

filepermsLit les droits d'un fichier

Description

int fileperms ( string $filename )

Lit les droits du fichier donné.

  

Liste de paramètres

filename

Chemin vers le fichier.

  

Valeurs de retour

Retourne les permissions du fichier sous forme numérique. Les bits de poids faible sont les mêmes que ceux des permissions dans chmod(), cependant certaines plateformes incluent dans le retour des informations sur le type de fichier donné dans filename. Les exemples qui suivent montrent comment tester la valeur de retour concernant les permissions et le type de fichier sur des systèmes POSIX comme Linux ou macOS.

Pour les fichiers locaux, la valeur spécifique st_mode de la structure C retournée par la fonction stat() est utilisée. Les bits affectés peuvent changer en fonction de la plateforme et vous devriez vous renseigner à son sujet si vous devez analyser les bits ne concernant pas la permission.

  

Exemples

Exemple #1 Affichage des droits en valeur octale

<?php
echo substr(sprintf('%o'fileperms('/tmp')), -4);
echo 
substr(sprintf('%o'fileperms('/etc/passwd')), -4);
?>

L'exemple ci-dessus va afficher :

1777
0644

Exemple #2 Affichage de tous les droits

<?php
$perms 
fileperms('/etc/passwd');

switch (
$perms 0xF000) {
    case 
0xC000// Socket
        
$info 's';
        break;
    case 
0xA000// Lien symbolique
        
$info 'l';
        break;
    case 
0x8000// Régulier
        
$info 'r';
        break;
    case 
0x6000// Block special
        
$info 'b';
        break;
    case 
0x4000// dossier
        
$info 'd';
        break;
    case 
0x2000// Caractère spécial
        
$info 'c';
        break;
    case 
0x1000// pipe FIFO
        
$info 'p';
        break;
    default: 
// Inconnu
        
$info 'u';
}

// Propriétaire
$info .= (($perms 0x0100) ? 'r' '-');
$info .= (($perms 0x0080) ? 'w' '-');
$info .= (($perms 0x0040) ?
            ((
$perms 0x0800) ? 's' 'x' ) :
            ((
$perms 0x0800) ? 'S' '-'));

// Groupe
$info .= (($perms 0x0020) ? 'r' '-');
$info .= (($perms 0x0010) ? 'w' '-');
$info .= (($perms 0x0008) ?
            ((
$perms 0x0400) ? 's' 'x' ) :
            ((
$perms 0x0400) ? 'S' '-'));

// Tout le monde
$info .= (($perms 0x0004) ? 'r' '-');
$info .= (($perms 0x0002) ? 'w' '-');
$info .= (($perms 0x0001) ?
            ((
$perms 0x0200) ? 't' 'x' ) :
            ((
$perms 0x0200) ? 'T' '-'));

echo 
$info;
?>

L'exemple ci-dessus va afficher :

-rw-r--r--

  

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

  

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

  

Voir aussi

  • chmod() - Change le mode du fichier
  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • stat() - Renvoie les informations à propos d'un fichier

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-fileperms.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut