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

hfwmuf9z  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(93)

我已经知道php中fileperms函数的输出必须是八进制数,但是当我使用它时,我在输出中得到了一个十进制数,我对此感到困惑。
我用mkdir函数创建了一个目录(所以默认权限应该是0777),但是当我用fileperms函数显示权限时,它返回了16895,这甚至不是一个八进制数,所以我把它转换成十进制,得到了40777,这才是真正的答案,所以我的问题是,这个函数什么时候返回八进制值,它是否返回一个十进制?还是它总是返回十进制数,我应该使用sprintf之类的函数将其转换为八进制?

qlfbtfca

qlfbtfca1#

基于PHP文档:
以数字模式返回文件的权限。此模式的低位与chmod()所期望的权限相同,但在大多数平台上,返回值还将包含有关文件类型的信息,作为filename。下面的示例演示了如何在POSIX系统(包括Linux和macOS)上测试特定权限和文件类型的返回值。
所以如果你使用这样的代码,这将解决这个问题:

<?php echo substr(sprintf('%o', fileperms('/mydirectory')), -4); ?>

相关问题