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.
Tip
Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles supportés pour une liste des protocoles supportant la famille de fonctionnalités de stat().
Example#1 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
Example#2 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().