fileperms

(PHP 4, PHP 5)

filepermsLit 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);
?>
<?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

LoadingChargement en cours