(PHP 4, PHP 5, PHP 7)
stat — Da información acerca de un fichero
$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.
filename
Ruta 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().