stat
En esta página
stat
Proporciona información sobre un fichero
Descripción#
stat(string $filename): array
```php
Proporciona información sobre el fichero `filename`. Si `filename` es un enlace simbólico, la información proviene del fichero en sí, y no del enlace simbólico. Antes de PHP 7.4.0, en Windows NTS compila los valores estáticos `size`, `atime`, `mtime` y `ctime` desde los enlaces simbólicos, en este caso.
`lstat` es idéntico a `stat` excepto que la información se basa en el enlace simbólico.
## Parámetros
`filename`
La ruta al fichero.
## Valores devueltos
| Número | Nombre | Descripción |
|--------|---------|---------------------------------------------------|
| 0 | dev | volumen (\*\*\*) |
| 1 | ino | Número de inodo (\*\*\*\*) |
| 2 | mode | derechos de acceso al inodo \*\*\*\*\* |
| 3 | nlink | número de enlaces |
| 4 | uid | userid del propietario (\*) |
| 5 | gid | groupid del propietario (\*) |
| 6 | rdev | tipo de volumen, si el volumen es un inodo |
| 7 | size | tamaño en bytes |
| 8 | atime | fecha del último acceso (timestamp Unix) |
| 9 | mtime | fecha de la última modificación (timestamp Unix) |
| 10 | ctime | fecha del último cambio de inodo (timestamp Unix) |
| 11 | blksize | tamaño de bloque (\*\*) |
| 12 | blocks | número de bloques de 512 bytes asignados (\*\*) |
Formato del resultado de `stat` y `fstat`
\* - En Windows, esto siempre será `0`.
\*\* - Solo en sistemas que soportan el tipo `st_blksize`. Los otros sistemas (ej. Windows) devuelven `-1`.
\*\*\* - En Windows, desde PHP 7.4.0, será el número de serie del volumen que contiene el fichero, que será un entero 64-bit *sin signo* que puede desbordarse. Anteriormente, era la representación numérica de la letra del volumen (ej. `2` para `C:`) para la función `stat`, y `0` para la función `lstat`.
\*\*\*\* - En Windows, desde PHP 7.4.0, es el identificador asociado con el fichero, que será un entero 64-bit *sin signo* que puede desbordarse. Anteriormente, siempre era `0`.
\*\*\*\*\* En Windows, el bit de permiso de escritura se define en función del atributo de solo lectura del fichero, y el mismo valor se reporta para todos los usuarios, grupo y propietario. El ACL no se tiene en cuenta, a diferencia de `is_writable`.
El valor de `mode` contiene información leída por varias funciones. Cuando se escribe en octal, comenzando por la derecha, los tres primeros dígitos son devueltos por `chmod`. El siguiente dígito es ignorado por PHP. Los dos siguientes dígitos indican el tipo de fichero:
| `mode` en octal | Significado |
|-----------------|-------------------------|
| `0140000` | socket |
| `0120000` | enlace simbólico |
| `0100000` | fichero regular |
| `0060000` | dispositivo de bloque |
| `0040000` | directorio |
| `0020000` | dispositivo de carácter |
| `0010000` | FIFO (un tubo nombrado) |
Los tipos de ficheros `mode`
Por ejemplo, un fichero regular podría ser `0100644` y un directorio podría `0040755`.
En caso de error, `stat` devuelve `false`.
> [!NOTE]
> Como el tipo entero de PHP es firmado y que muchas plataformas utilizan enteros de 32 bits, algunas funciones relacionadas con el sistema de archivos pueden retornar resultados extraños para ficheros de tamaño superior a 2 Go.
## Errores/Excepciones
Si ocurre un error, se emite una advertencia de tipo `E_WARNING`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 7.4.0 | En Windows, el número del volumen es ahora el número de serie que contiene el fichero, y el número de inodo es el identificador asociado con el fichero. |
| 7.4.0 | Los valores estáticos `size`, `atime`, `mtime` y `ctime` de los enlaces simbólicos son siempre los de la meta. Esto no era así previamente para los builds NTS en Windows. |
## Ejemplos
Ejemplo con `stat`
Uso de la información obtenida de `stat` junto con la función `touch`
```php
Notas#
[!NOTE] Tenga en cuenta que la precisión temporal puede variar según el sistema de archivos utilizado.
[!NOTE] Los resultados de esta función se almacenan en caché. Véase la función
clearstatcachepara más detalles.[!TIP] A partir de PHP 5.0.0, esta función también puede ser utilizada con algunos protocolos url. Lea ??? para conocer los protocolos que soportan la familia de funcionalidades de
stat.
Véase también#
lstat, fstat, filemtime, filegroup, SplFileInfo