【发布时间】:2011-10-23 02:42:43
【问题描述】:
在 FrogCms 中找到了这段代码
function isWritable($file=null) {
$perms = fileperms($file);
if (is_writable($file) || ($perms & 0x0080) || ($perms & 0x0010) || ($perms & 0x0002))
return true;
}
我很难理解这部分
(is_writable($file) || ($perms & 0x0080) || ($perms & 0x0010) || ($perms & 0x0002))
在做了一些研究之后,我知道0x0080 是所有者的权限,0x0010 是组的权限,0x0002 是其他的权限。这个值来自哪里?这是权限系统的预定值吗?
有人可以向我解释一下 $perms & 0x0080 如何解析为真,例如 fileperms(__FILE__) 返回一个像 33206 这样的值。你怎么能
将 33206 与 0x0080 进行比较?
【问题讨论】:
-
由于权限被分组为三元组,人们通常使用八进制值。不是十六进制或十进制。它可能取自糟糕的手动示例。
标签: php file-permissions