(PHP 4, PHP 5)
fileperms — Lit les droits d'un fichier
Lit les droits du fichier donné.
Chemin vers le fichier.
Retourne les droits du fichier, ou FALSE si une erreur survient.
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');
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) {
// Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Dossier
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Caractère spécial
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// pipe FIFO
$info = 'p';
} else {
// Inconnu
$info = 'u';
}
// Autres
$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--
Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.
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().