获取文件的权限,权限格式分为数值格式(如0644)和字符表达格式(如-rw-r--r--)两种
数值格式应用案例
点击复制代码 PHP
$url="1.txt";
$name=GetFilePermsOct($url);
print_r($name);
输出结果为:
0644
数值格式函数
点击复制代码 PHP
function GetFilePermsOct($f)
{
if (!file_exists($f)) {
return '';
}
return substr(sprintf('%o', fileperms($f)), -4);
}
字符表达格式应用案例
点击复制代码 PHP
$url="1.txt";
$name=GetFilePerms($url);
print_r($name);
输出结果为:
-rw-r--r--
字符表达格式函数
点击复制代码 PHP
function GetFilePerms($f)
{
if (!file_exists($f)) {
return '';
}
$perms = fileperms($f);
switch ($perms & 0xF000) {
case 0xC000: // socket
$info = 's';
break;
case 0xA000: // symbolic link
$info = 'l';
break;
case 0x8000: // regular
$info = '-';
break;
case 0x6000: // block special
$info = 'b';
break;
case 0x4000: // directory
$info = 'd';
break;
case 0x2000: // character special
$info = 'c';
break;
case 0x1000: // FIFO pipe
$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;
}