Main Menu
Forums
Programming
Contest
Documentation
Partner
Sites
Sponsors
fileperms fileperms (PHP 3, PHP 4, PHP 5)
fileperms -- Gets file permissions
Description int
fileperms ( string filename )
Returns the permissions on the file, or FALSE in case of an error.
Note: The results of this
function are cached. See clearstatcache() for
more details.
Tip: As of PHP 5.0.0 this function
can also be used with some URL wrappers. Refer to
Appendix M for a listing of which wrappers support
stat() family of functionality.
Example 1. Display permissions as an octal value
<?php echo substr ( sprintf ( '%o' , fileperms ( '/tmp' )), - 4 ); echo substr ( sprintf ( '%o' , fileperms ( '/etc/passwd' )), - 4 ); ?>
This would produce the output:
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 ; ?>
This would produce the output:
See also is_readable() ,
and stat()