【发布时间】:2019-03-02 15:17:47
【问题描述】:
我正在使用mkdir() 分配目录权限。但是我不能通过硬编码来传递文件权限。相反,我从配置文件中获取文件权限,读取该文件的函数返回的值是字符串格式。我知道如果将 0755 作为字符串传递,它将不会被视为八进制数。
所以我是这样做的
mkdir($dirPath, (int)base_convert(env("FILE_ACCESS", "0766"), 8, 10), true);
函数 env 返回存储在配置文件中的值。但是,如果配置文件中没有定义权限,它只会返回字符串"0766"。
但是在目录上设置的权限是 0744。
【问题讨论】:
-
您的意思是写
getenv而不是env?或者它是一个自定义函数 - 如果是,请分享它:) -
如果您使用的是 Windows,模式将被忽略:php.net/manual/en/function.mkdir.php
-
@pilan 我用的是 Ubuntu,你不需要知道 env 函数的逻辑。它总是返回一个包含文件权限的字符串。
-
好的,检查
umask? -
我不想用那个。客户想要它没有 umask