(PHP 4, PHP 5)
fileperms — Lê as permissões do arquivo
$filename
)Retorna as permissões do arquivo.
filename
Caminho até o arquivo.
Retornas as permissões do arquivo, ou FALSE
em caso de erro.
Exemplo #1 Mostra as permissões na forma octal
<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>
O exemplo acima irá imprimir:
1777 0644
Exemplo #2 Mostra as permissões completas
<?php
$perms = fileperms('/etc/passwd');
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
// Link simbólico
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
// Bloco especial
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Diretório
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Caractere especial
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Desconhecido
$info = 'u';
}
// Proprietário
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Grupo
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// Outros
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo $info;
?>
O exemplo acima irá imprimir:
-rw-r--r--
Nota: Os resultados desta função são cacheados. Veja clearstatcache() para mais detalhes.
A partir do PHP 5.0.0, esta função também pode ser utilizada com alguns wrappers URL. Veja Supported Protocols and Wrappers para uma lista de quais wrappers são suportados pela família de funções stat().