You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中fileperms函数的返回值为十进制还是八进制?

PHP fileperms 函数返回值详解
  • fileperms 始终返回十进制整数,不会直接返回八进制值,你看到的八进制是十进制转换后的结果。
  • 你得到的16895转八进制为40777,其中4是文件类型标识(代表这是一个目录),后面的0777才是你设置的权限位。fileperms返回的是完整的文件状态掩码,包含文件类型和权限信息,不是单纯的权限数值。
  • 如果你需要得到可读的八进制权限格式,必须用sprintf或类似函数转换,示例代码:
$dir = './test';
mkdir($dir, 0777);
$permValue = fileperms($dir);

// 输出完整的八进制掩码(含文件类型)
echo sprintf('%o', $permValue); // 输出 40777

// 仅提取权限位部分
echo substr(sprintf('%o', $permValue), -4); // 输出 0777
  • 额外注意:系统的umask会修改实际生效的权限。比如默认umask为0022时,即使你用mkdir($dir, 0777),实际创建的目录权限会是0755,对应fileperms返回的十进制转八进制为40755。

内容的提问来源于stack exchange,提问作者Ahmad Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:14:52