stat

(PHP 4, PHP 5, PHP 7)

statDa información acerca de un fichero

Descripción

stat ( string $filename ) : array

Reúne las estadísticas del fichero nombrado por filename. Si filename es un enlace simbólico, las estadísticas son las del fichero mismo, no las del enlace simbólico.

lstat() es idéntica a stat() excepto que está basada en el estado de los enlaces simbólicos.

Parámetros

filename

Ruta del fichero.

Valores devueltos

Formato del resultado de stat() y fstat()
Numérico Asociativo Descripción
0 dev número de dispositivo
1 ino número de i-nodo *
2 mode modo de protección del i-nodo
3 nlink número de enlaces
4 uid ID de usuario del propietario *
5 gid ID de grupo del propietario *
6 rdev tipo de dispositivo, si es un dispositivo i-nodo
7 size tamaño en bytes
8 atime momento del último acceso (tiempo Unix)
9 mtime momento de la última modificación (tiempo Unix)
10 ctime momento de la última modificación del i-nodo (tiempo Unix)
11 blksize tamaño del bloque E/S del sistema de ficheros **
12 blocks número de bloques de 512 bytes asignados **
* en Windows esto siempre será 0.

** Sólo válido para sistemas que soportan el tipo st_blksize type - otros sistemas (p.ej. Windows) devuelven -1.

En caso de que se produzca un error, stat() devuelve FALSE.

Nota: Debido a que el tipo integer de PHP es con signo y muchas plataformas usan enteros de 32 bits, algunas funciones de sistema de ficheros pueden devolver resultados inesperados para ficheros que son mayores de 2 GB.

Errores/Excepciones

Si falla, se emite un E_WARNING.

Ejemplos

Ejemplo #1 Ejemplo de stat()

<?php
/* Obtener las estadísticas de un fichero */
$estadísticas stat('C:\php\php.exe');

/*
 * Imprime el momento de acceso del fichero,
 * esto es lo mismo que llamar a fileatime()
 */
echo 'Momento de acceso: ' $estadísticas['atime'];

/*
 * Imprime el momento de modificación del fichero,
 * esto es lo mismo que llamar a filemtime()
 */
echo 'Momento de modificación: ' $estadísticas['mtime'];

/* Imprime el número de dispositivo */
echo 'Número de dispositivo: ' $estadísticas['dev'];
?>

Ejemplo #2 Usar la información de stat() junto con touch()

<?php
/* Obtener las estadísticas del fichero */
$estadísticas = @stat('C:\php\php.exe');

/* ¿Falló al obtener la información de stat? */
if(!$estadísticas) {
    echo 
'La llamada a stat() falló...';
} else {
    
/*
     * Queremos que el tiempo de acceso sea 1 semana
     * después que el tiempo de acceso actual.
     */
    
$atime $estadísticas['atime'] + 604800;

    
/* Afectar el fichero */
    
if(!@touch('fichero.txt'time(), $atime)) {
        echo 
'Falló al afectar el fichero...';
    } else {
        echo 
'touch() devolvió con éxito...';
    }
}
?>

Notas

Nota:

Observe que el tiempo de resolución quizá varia según el sistema de ficheros.

Nota: Los resultados de esta función son guardados en caché. Para más información ver clearstatcache().

Sugerencia

Desde PHP 5.0.0, esta función también puede usarse con algunos URL wrappers. Consultar Protocolos y Envolturas soportados para deter4minar qué envolturas soportan la familia de funcionalidad de stat().

Ver también

  • lstat() - Da información acerca de un archivo o enlace simbólico
  • fstat() - Obtiene información acerca de un archivo usando un puntero al archivo abierto
  • filemtime() - Obtiene el momento de la última modificación de un archivo
  • filegroup() - Obtiene el grupo de un archivo