# stat

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

stat — Da 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