PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

filesize> <fileowner
Last updated: Sun, 25 Nov 2007

view this page in

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.



filesize> <fileowner
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
fileperms
eelco
10-Jul-2007 03:21
If you only want the permissions (lowest three octal numbers) you can use a bitwise AND to mask the bits:

<?php
fileperms
($file) & 511;
?>
paul2712 at gmail dot com
02-Jun-2007 10:08
Do not forget: clearstatcache();
==============================
 
When ever you make a:

mkdir($dstdir, 0770 ))

or a:

chmod($dstdir, 0774 );

You have to call:

clearstatcache();

before you can call:

fileperms($dstdir);
chinello at gmail dot com
24-Apr-2007 10:43
On Linux (not tested on Windows), if you want a chmod-like permissions, you can use this function:

<?php
function file_perms($file, $octal = false)
{
    if(!
file_exists($file)) return false;

   
$perms = fileperms($file);

   
$cut = $octal ? 2 : 3;

    return
substr(decoct($perms), $cut);
}
?>

Using it:

$ touch foo.bar
$ chmod 0754 foo.bar
<?php
echo file_perms('foo.bar'); // prints: 754
echo file_perms('foo.bar', true); // prints 0754
?>

filesize> <fileowner
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites