stat

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

statObtém informações sobre um arquivo

Descrição

stat(string$filename): array|false

Coleta estatísticas do arquivo informado em filename. Se filename for uma ligação simbólica, estatísticas serão do próprio arquivo, não da ligação. Antes do PHP 7.4.0, nas compilações NTS do Windows, as estatísticas size, atime, mtime e ctime statistics são da ligação simbólica, neste caso.

lstat() é idêntica a stat() exceto que ela foi baseada no estado de ligações simbólicas.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Formato de retorno de stat() e fstat()
NuméricoAssociativoDescrição
0devnúmero do dispositivo ***
1inonúmero do inode ***
2modemodo de proteção do inode *****
3nlinknúmero de ligações
4uidid de usuário do proprietário *
5gidid de grupo do proprietário *
6rdevtipo de dispositivo, se for inode
7sizetamanho em bytes
8atimehorário do último acesso (timestamp Unix)
9mtimehorário da última modificação (timestamp Unix)
10ctimehora da última modificação do inode (timestamp Unix)
11blksizetamanho do bloco de E/S no sistema de arquivos **
12blocksnúmero de blocos de 512 bytes alocados **

* No Windows será sempre 0.

** Válido apenas em sistemas que suportam o tipo st_blksize type - outros sistemas (ex.: Windows) retornam -1.

*** No Windows, a partir do PHP 7.4.0, este é o número de série do volume que contém o arquivo, que é um inteiro de 64-bits sem sinal, ou seja, pode sobrecarregar. Anteriormente, era uma representação numérica da letra do dispositivo (ex.: 2 para C:) para stat(), e 0 para lstat().

**** No Windows, a partir do PHP 7.4.0, este é o identificador associado com o arquivo, que é um inteiro de 64-bits sem sinal, ou seja, pode sobrecarregar. Anteriormente, era sempre 0.

***** No Windows, o bit de permissão de escrita é definido de acordo com o atributo de somente-leitura do arquivo, e o mesmo valor é reportado para todos os usuários, grupos e proprietários. A ACL não é levada em consideração, contrário a is_writable().

O valor de mode contém informação lida por várias funções. Quando escrita em octal, começando da direita, os primeiros três dígitos são retornados por chmod(). O dígito seguinte é ignorado pelo PHP. Os dois dígitos seguintes indicam o tipo de arquivo:

Tipos de arquivo para mode
mode em octalSignificado
0140000socket
0120000ligação
0100000arquivo normal
0060000dispositivo de bloco
0040000diretório
0020000dispositivo de caracteres
0010000fifo
Por exemplo, um arquivo normal poderia ser 0100644 e um diretório poderia ser 0040755.

Em caso de erro, stat() retorna false.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Erros/Exceções

Em caso de falha, um E_WARNING é emitido.

Registro de Alterações

VersãoDescrição
7.4.0 No Windows, o número do dispositivo agora é o número de série do volume que contém o arquivo, e o número do inode é o identificador associado com o arquivo.
7.4.0 As estatísticas size, atime, mtime e ctime de ligações simbólicas agora são sempre aquelas do alvo. Anteriormente não era o caso para compilações NTS do Windows.

Exemplos

Exemplo #1 stat() example

<?php

$stat = stat('C:\php\php.exe');


echo 'Horário de acesso: ' . $stat['atime'];


echo 'Horário de modificação: ' . $stat['mtime'];


echo 'Número de dispositivo: ' . $stat['dev'];
?>

Exemplo #2 Usando informação de stat() junto com a função touch()

<?php

$stat = stat('C:\php\php.exe');


if (!$stat) {
echo
'stat() falhou...';
} else {

$atime = $stat['atime'] + 604800;


if (!touch('some_file.txt', time(), $atime)) {
echo
'Falha ao tocar o arquivo...';
} else {
echo
'touch() retorno com sucesso...';
}
}
?>

Notas

Nota:

Note que a resolução de tempo pode variar de um sistema de arquivos para outro.

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • lstat() - Obtém informações sobre um arquivo ou ligação simbólica
  • fstat() - Lê informações sobre um arquivo usando um ponteiro de arquivo aberto
  • filemtime() - Obtém o horário de modificação do arquivo
  • filegroup() - Lê o grupo do arquivo
  • SplFileInfo
To Top