stat

(PHP 4, PHP 5, PHP 7, PHP 8)

statRenvoie les informations à propos d'un fichier

Description

stat(string$filename): array|false

Renvoie les informations à propos du fichier filename. Si filename est un lien symbolique, les informations proviennent du fichier lui-même, et non du lien symbolique. Avant PHP 7.4.0, sous Windows NTS compile les valeurs statiques size, atime, mtime et ctime depuis les liens symboliques, dans ce cas.

lstat() est identique à stat() sauf que les informations seront alors basées sur le lien symbolique.

Liste de paramètres

filename

Le chemin vers le fichier.

Valeurs de retour

Format du résultat de stat() et fstat()
NuméroNomDescription
0devvolume (***)
1inoNuméro d'inode (****)
2modedroit d'accès à l'inode *****
3nlinknombre de liens
4uiduserid du propriétaire (*)
5gidgroupid du propriétaire (*)
6rdevtype du volume, si le volume est une inode
7sizetaille en octets
8atimedate de dernier accès (Unix timestamp)
9mtimedate de dernière modification (Unix timestamp)
10ctimedate de dernier changement d'inode (Unix timestamp)
11blksizetaille de bloc (**)
12blocksnombre de blocs de 512 octets alloués (**)

* - Sous Windows, ceci sera toujours 0.

** - uniquement sur les systèmes qui supportent le type st_blksize. Les autres systèmes (e.g. Windows) retournent -1.

*** - Sous Windows, depuis PHP 7.4.0, ce sera le numéro de série du volume qui contient le fichier, qui sera un entier 64-bit non signé qui peut déborder. Auparavant, c'était la représentation numériques de la lettre du volume (i.e. 2 pour C:) pour la fonction stat(), et 0 pour la fonction lstat().

**** - Sous Windows, depuis PHP 7.4.0, c'est l'identifiant associé avec le fichier, qui sera un entier 64-bit non signé qui peut déborder. Auparavant, c'était toujours 0.

***** Sous Windows, le bit de la permission d'écriture est définit en fonction de l'attribut lecture seule du fichier, et la même valeur est rapporté pour tout les utilisateurs, groupe, et propriétaire. L'ACL n'est pas pris en compte, contrairement à is_writable().

La valeur de mode contient des informations lut par plusieurs fonctions. Quand écrit en octal, commençant par la droite, les trois premiers chiffres sont retournés par chmod(). Le prochain chiffre est ignoré par PHP. Les deux prochains chiffres indiquent le type de fichier :

Les types de fichiers mode
mode en octalSignification
0140000socket
0120000lien symbolique
0100000fichier régulier
0060000périphérique bloc
0040000dossier
0020000périphérique de caractère
0010000FIFO (un tube nommé)
Ainsi, par exemple, un fichier régulier pourrait être 0100644 et un dossier pourrait 0040755.

En cas d'erreur, stat() retourne false.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Erreurs / Exceptions

Si une erreur survient, une alerte de type E_WARNING est émise.

Historique

VersionDescription
7.4.0 Sous Windows, le numéro du volume est maintenant le numéro de série qui contient le fichier, et le numéro de l'inode est l'identifiant associé avec le fichier.
7.4.0 Les valeurs statiques size, atime, mtime et ctime des liens symboliques sont toujours ceux de la cible. Ce n'était précédemment pas le cas pour les builds NTS sous Windows.

Exemples

Exemple #1 Exemple avec stat()

<?php

$stat = stat('C:\php\php.exe');


echo 'Date et heure d\'accès : ' . $stat['atime'];


echo 'Date et heure de modification : ' . $stat['mtime'];


echo 'Numéro du Device : ' . $stat['dev'];
?>

Exemple #2 Utilisation des informations issues de stat() conjointement avec la fonction touch()

<?php

$stat = stat('C:\php\php.exe');


if (!$stat) {
echo
'L\'appel à stat() a échoué...';
} else {

$atime = $stat['atime'] + 604800;


if(!touch('some_file.txt', time(), $atime)) {
echo
'Échec lors de l\'appel à la fonction touch()...';
} else {
echo
'L\'appel à touch() a réussi...';
}
}
?>

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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

  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • fstat() - Lit les informations sur un fichier à partir d'un pointeur de fichier
  • filemtime() - Lit la date de dernière modification du fichier
  • filegroup() - Lire le nom du groupe
  • SplFileInfo
To Top