note 3932 modified in fileperms by ronabop
| From: | ronabop@php.net | Date: | Mon, 02 Oct 2000 10:42:17 +0000 |
| Subject: | note 3932 modified in fileperms by ronabop | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-5892@lists.php.net to get a copy of this message | ||
Here is a simple function to display UNIX like permissions:
function display_perms( $mode )
{
/* Determine Type */
if( $mode & 0x1000 )
$type='p'; /* FIFO pipe */
else if( $mode & 0x2000 )
$type='c'; /* Character special */
else if( $mode & 0x4000 )
$type='d'; /* Directory */
else if( $mode & 0x6000 )
$type='b'; /* Block special */
else if( $mode & 0x8000 )
$type='-'; /* Regular */
else if( $mode & 0xA000 )
$type='l'; /* Symbolic Link */
else if( $mode & 0xC000 )
$type='s'; /* Socket */
else
$type='u'; /* UNKNOWN */
/* Determine permissions */
$owner["read"] = ($mode & 00400) ? 'r' : '-';
$owner["write"] = ($mode & 00200) ? 'w' : '-';
$owner["execute"] = ($mode & 00100) ? 'x' : '-';
$group["read"] = ($mode & 00040) ? 'r' : '-';
$group["write"] = ($mode & 00020) ? 'w' : '-';
$group["execute"] = ($mode & 00010) ? 'x' : '-';
$world["read"] = ($mode & 00004) ? 'r' : '-';
$world["write"] = ($mode & 00002) ? 'w' : '-';
$world["execute"] = ($mode & 00001) ? 'x' : '-';
/* Adjust for SUID, SGID and sticky bit */
if( $mode & 0x800 )
$owner["execute"] = ($owner[execute]=='x') ? 's' :
'S';
if( $mode & 0x400 )
$group["execute"] = ($group[execute]=='x') ? 's' :
'S';
if( $mode & 0x200 )
$world["execute"] = ($world[execute]=='x') ? 't' :
'T';
printf("%1s", $type);
printf("%1s%1s%1s", $owner[read], $owner[write], $owner[execute]);
printf("%1s%1s%1s", $group[read], $group[write], $group[execute]);
printf("%1s%1s%1s\n", $world[read], $world[write], $world[execute]);
}
http://www.php.net/manual/function.fileperms.php