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

  1. <?php
  2. echo substr(sprintf('%o', fileperms('/tmp')), -4);
  3. echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
  4. ?>
  1. <?php
  2. $perms = fileperms('/etc/passwd');
  3.  
  4. if (($perms & 0xC000) == 0xC000) {
  5. // Socket
  6. $info = 's';
  7. } elseif (($perms & 0xA000) == 0xA000) {
  8. // Lien symbolique
  9. $info = 'l';
  10. } elseif (($perms & 0x8000) == 0x8000) {
  11. // Régulier
  12. $info = '-';
  13. } elseif (($perms & 0x6000) == 0x6000) {
  14. // Block special
  15. $info = 'b';
  16. } elseif (($perms & 0x4000) == 0x4000) {
  17. // Dossier
  18. $info = 'd';
  19. } elseif (($perms & 0x2000) == 0x2000) {
  20. // Caractère spécial
  21. $info = 'c';
  22. } elseif (($perms & 0x1000) == 0x1000) {
  23. // pipe FIFO
  24. $info = 'p';
  25. } else {
  26. // Inconnu
  27. $info = 'u';
  28. }
  29.  
  30. // Autres
  31. $info .= (($perms & 0x0100) ? 'r' : '-');
  32. $info .= (($perms & 0x0080) ? 'w' : '-');
  33. $info .= (($perms & 0x0040) ?
  34. (($perms & 0x0800) ? 's' : 'x' ) :
  35. (($perms & 0x0800) ? 'S' : '-'));
  36.  
  37. // Groupe
  38. $info .= (($perms & 0x0020) ? 'r' : '-');
  39. $info .= (($perms & 0x0010) ? 'w' : '-');
  40. $info .= (($perms & 0x0008) ?
  41. (($perms & 0x0400) ? 's' : 'x' ) :
  42. (($perms & 0x0400) ? 'S' : '-'));
  43.  
  44. // Tout le monde
  45. $info .= (($perms & 0x0004) ? 'r' : '-');
  46. $info .= (($perms & 0x0002) ? 'w' : '-');
  47. $info .= (($perms & 0x0001) ?
  48. (($perms & 0x0200) ? 't' : 'x' ) :
  49. (($perms & 0x0200) ? 'T' : '-'));
  50.  
  51. echo $info;
  52. ?>

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