php获取文件权限
获取文件的权限,权限格式分为数值格式(如0644)和字符表达格式(如-rw-r--r--)两种
数值格式应用案例
$url="1.txt"; $name=GetFilePermsOct($url); print_r($name);
输出结果为:
0644
数值格式函数
functionGetFilePermsOct($f)
{
if(!file_exists($f)){
return'';
}
returnsubstr(sprintf('%o',fileperms($f)),-4);
}字符表达格式应用案例
$url="1.txt"; $name=GetFilePerms($url); print_r($name);
输出结果为:
-rw-r--r--
字符表达格式函数
functionGetFilePerms($f)
{
if(!file_exists($f)){
return'';
}
$perms=fileperms($f);
switch($perms&0xF000){
case0xC000://socket
$info='s';
break;
case0xA000://symboliclink
$info='l';
break;
case0x8000://regular
$info='-';
break;
case0x6000://blockspecial
$info='b';
break;
case0x4000://directory
$info='d';
break;
case0x2000://characterspecial
$info='c';
break;
case0x1000://FIFOpipe
$info='p';
break;
default://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':'-'));
//Other
$info.=(($perms&0x0004)?'r':'-');
$info.=(($perms&0x0002)?'w':'-');
$info.=(($perms&0x0001)?(($perms&0x0200)?'t':'x'):(($perms&0x0200)?'T':'-'));
return$info;
} 

