// 说明:摘录自 User manager for PureFTPd 的权限显示函数
// 整理:http://www.CodeBit.cn
// 功能: 读取文件夹权限
function DisplayFilePermissions($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';
return $Type . $Owner['read'] . $Owner['write'] . $Owner['execute'] . $Group['read'] . $Group['write'] . $Group['execute'] . $World['read'] . $World['write'] . $World['execute'];
}
$perms = fileperms( 'F:/key' );
echo DisplayFilePermissions($perms);