fileowner
filesize
Fonctions sur les systèmes de fichiers
PHP Manual

# fileperms

(PHP 4, PHP 5)

fileperms — Lit 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 Mac OS X.

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');
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--

### 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

fileowner
filesize
Fonctions sur les systèmes de fichiers
PHP Manual