Funciones del Sistema de Archivos
PHP Manual

stat

(PHP 4, PHP 5)

statDa información acerca de un archivo

Descripción

array stat ( string $filename )

Reúne la estadísticas del archivo nombrado por filename. Si filename es un enlace simbólico, las estadísticas son las del archivo 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 archivo.

Valores devueltos

Formato del resultado de stat() y fstat()
Numérico Asociativo (desde PHP 4.0.6) 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 archivos **
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.

Errores/Excepciones

Si falla, se emite un E_WARNING.

Historial de cambios

Versión Descripción
4.0.6 Además de la devolución de estos atributos en una matriz numérica, se puede acceder a ellos con índices asociativos, como se anotó al lado de cada parámetro

Ejemplos

Example #1 Ejemplo de stat()

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

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

/*
 * Imprime el momento de modificación del archivo,
 * 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'];
?>

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

<?php
/* Obtener las estadísticas del archivo */
$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 archivo */
    
if(!@touch('archivo.txt'time(), $atime))
    {
        echo 
'Falló al afectar el archivo...';
    }
    else
    {
        echo 
'touch() devolvió con éxito...';
    }
}
?>

Notas

Note:

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

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

Tip

Desde PHP 5.0.0, esta función también puede usarse con algunos URL wrappers. Consultar Lista de Protocolos/Envolturas Soportados para obtener una lista los wrappers tienen soporte para la familia de funcionalidad de stat().

Ver también


Funciones del Sistema de Archivos
PHP Manual