fileperms

(PHP 3, PHP 4, PHP 5)

fileperms -- Obtiene los permisos del archivo

Descripción

int fileperms ( string nombre_archivo )

Devuelve los permisos del archivo, o FALSE en caso de fallo.

Nota: Los resultados de esta función son guardados. Consultar clearstatcache() para más detalles.

Sugerencia: A partir de PHP 5.0.0, esta funcion tambien puede usarse con algunas URL como nombre de fichero. Consultar Apéndice M, para obtener una lista con soporte para la funcionalidad stat().

Ejemplo 1. Desplegar los permisos como un valor octal

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo
substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

Esto produciría la salida:

1777
0644

Ejemplo 2. Mostrar los permisos completos

<?php
$perms
= fileperms('/etc/passwd');

if ((
$perms & 0xC000) == 0xC000) {
    
// Socket
    
$info = 's';
} elseif ((
$perms & 0xA000) == 0xA000) {
    
// Enlace Simbolico
    
$info = 'l';
} elseif ((
$perms & 0x8000) == 0x8000) {
    
// Regular
    
$info = '-';
} elseif ((
$perms & 0x6000) == 0x6000) {
    
// Bloque especial
    
$info = 'b';
} elseif ((
$perms & 0x4000) == 0x4000) {
    
// Directorio
    
$info = 'd';
} elseif ((
$perms & 0x2000) == 0x2000) {
    
// Caracter especial
    
$info = 'c';
} elseif ((
$perms & 0x1000) == 0x1000) {
    
// Pipe FIFO
    
$info = 'p';
} else {
    
// Desconocido
    
$info = 'u';
}

// Duenyo
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            ((
$perms & 0x0800) ? 's' : 'x' ) :
            ((
$perms & 0x0800) ? 'S' : '-'));

// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            ((
$perms & 0x0400) ? 's' : 'x' ) :
            ((
$perms & 0x0400) ? 'S' : '-'));

// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            ((
$perms & 0x0200) ? 't' : 'x' ) :
            ((
$perms & 0x0200) ? 'T' : '-'));

echo
$info;
?>

Esto produciría la salida:

-r--r--r--

Vea también is_readable(), y stat()

Hosting by: hurra.com
Generated: 2007-01-26 18:00:58