Fonctions sur les systèmes de fichiers
PHP Manual

stat

(PHP 4, PHP 5)

statRenvoie les informations à propos d'un fichier

Description

array stat ( string $filename )

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.

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éro Nom (depuis PHP 4.0.6) Description
0 dev volume
1 ino Numéro d'inode (*)
2 mode droit d'accès à l'inode
3 nlink nombre de liens
4 uid userid du propriétaire (*)
5 gid groupid du propriétaire (*)
6 rdev type du volume, si le volume est une inode
7 size taille en octets
8 atime date de dernier accès (Unix timestamp)
9 mtime date de dernière modification (Unix timestamp)
10 ctime date de dernier changement d'inode (Unix timestamp)
11 blksize taille de bloc (**)
12 blocks nombre de blocs de 512 octets alloués (**)
* - Sous Windows, vaut toujours 0.

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

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

Version Description
4.0.6 En plus de retourner ces attributs dans un tableau numérique, ils peuvent être lus à l'aide de leurs indices, tels que notés près de chacun des paramètres

Exemples

Exemple #1 Exemple avec stat()

<?php
/* Récupération des informations */
$stat stat('C:\php\php.exe');

/*
 * Affichage de la date et heure de l'accès à ce fichier,
 * identique à l'appel à la fonction fileatime()
 */
echo 'Date et heure d\'accès : ' $stat['atime'];

/*
 * Affiche de la date et heure de modification du fichier,
 * identique à l'appel à la fonction filemtime()
 */
echo 'Date et heure de modification : ' $stat['mtime'];

/* Affichage du numéro du device */
echo 'Numéro du Device : ' $stat['dev'];
?>

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

<?php
/* Récupération des informations issues de la fonction stat */
$stat stat('C:\php\php.exe');

/* L'accès aux informations a-t-il échoué ? */
if (!$stat) {
    echo 
'L\'appel à stat() a échoué...';
} else {
    
/*
     * Nous voulons que la date et heure d'accès soit d'une
     * semaine après la date courante.
     */
    
$atime $stat['atime'] + 604800;

    
/* Touchons le fichier ! */
    
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

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


Fonctions sur les systèmes de fichiers
PHP Manual