(PHP 4, PHP 5, PHP 7, PHP 8)
stat — Da información acerca de un fichero
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.
filenameRuta del fichero.
| 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 ** |
** 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.
Si falla, se emite un E_WARNING.
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...';
}
}
?>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().
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().