Funções para Sistema de arquivo
PHP Manual

fileperms

(PHP 4, PHP 5)

filepermsLê as permissões do arquivo

Descrição

int fileperms ( string $filename )

Retorna as permissões do arquivo.

Parâmetros

filename

Caminho até o arquivo.

Valor Retornado

Retornas as permissões do arquivo, ou FALSE em caso de erro.

Exemplos

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--

Notas

Nota: Os resultados desta função são cacheados. Veja clearstatcache() para mais detalhes.

Dica

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().

Veja Também


Funções para Sistema de arquivo
PHP Manual