fileperms

(PHP 4, PHP 5)

fileperms — Renvoie les permissions affectées à un fichier

Description

int fileperms ( string $filename )

fileperms() renvoie les permissions affectées au fichier filename , ou FALSE en cas d'erreur.

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 Annexe O, Liste des protocoles supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat() .

Exemple 780. Affichage des permissions 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 781. Affichage de toutes les permissions

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

if ((
$perms  0xC000 ) ==  0xC000 ) {
    
// Socket
    
$info  's' ;
} elseif ((
$perms  0xA000 ) ==  0xA000 ) {
    
// Lien symbolique
    
$info  'l' ;
} elseif ((
$perms  0x8000 ) ==  0x8000 ) {
    
// Régulier
    
$info  '-' ;
} elseif ((
$perms  0x6000 ) ==  0x6000 ) {
    
// Bloc spécial
    
$info  'b' ;
} elseif ((
$perms  0x4000 ) ==  0x4000 ) {
    
// Dossier
    
$info  'd' ;
} elseif ((
$perms  0x2000 ) ==  0x2000 ) {
    
// Caractère spécial
    
$info  'c' ;
} elseif ((
$perms  0x1000 ) ==  0x1000 ) {
    
// FIFO pipe
    
$info  'p' ;
} else {
    
// 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'  '-' ));

// Tous
$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--

   

Voir aussi is_readable() et stat() .