php获取文件权限
获取文件的权限,权限格式分为数值格式(如0644)和字符表达格式(如-rw-r--r--)两种
数值格式应用案例
$url="1.txt"; $name=GetFilePermsOct($url); print_r($name);
输出结果为:
0644
数值格式函数
function GetFilePermsOct($f) { if (!file_exists($f)) { return ''; } return substr(sprintf('%o', fileperms($f)), -4); }
字符表达格式应用案例
$url="1.txt"; $name=GetFilePerms($url); print_r($name);
输出结果为:
-rw-r--r--
字符表达格式函数
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; }