(PHP 4, PHP 5)
fileperms — Renvoie les permissions affectées à un fichier
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.
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() .