Forum und email

fileperms

(PHP 4, PHP 5)

fileperms — Gets file permissions

Beskrivelse

int fileperms ( string $filename )

Gets permissions for the given file.

Parameterliste

filename

Path to the file.

Returneringsværdier

Returns the permissions on the file, or FALSE in case of an error.

Eksempler

Example#1 Display permissions as an octal value

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

Ovenstående eksempel vil udskrive:

1777
0644

Example#2 Display full permissions

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

if ((
$perms 0xC000) == 0xC000) {
    
// Socket
    
$info 's';
} elseif ((
$perms 0xA000) == 0xA000) {
    
// Symbolic Link
    
$info 'l';
} elseif ((
$perms 0x8000) == 0x8000) {
    
// Regular
    
$info '-';
} elseif ((
$perms 0x6000) == 0x6000) {
    
// Block special
    
$info 'b';
} elseif ((
$perms 0x4000) == 0x4000) {
    
// Directory
    
$info 'd';
} elseif ((
$perms 0x2000) == 0x2000) {
    
// Character special
    
$info 'c';
} elseif ((
$perms 0x1000) == 0x1000) {
    
// FIFO pipe
    
$info 'p';
} else {
    
// Unknown
    
$info 'u';
}

// Owner
$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;
?>

Ovenstående eksempel vil udskrive:

-rw-r--r--

Notes

Note: Resultatet af denne funktion er cached. Se clearstatcache() for flere detaljer.

Tip

Fra og med PHP 5.0.0 kan denne funktion også bruges med nogle URL wrappers. Se List of Supported Protocols/Wrappers for en liste over hvilke wrappers understøtter stat() familiens funktionalitet.