我遇到一个问题,当我尝试从Laravel中的.env文件加载权限字符串然后当我尝试将其用作mkdir
中文件模式arg的int时,它会删除八进制位0
因此mkdir
调用搞砸了:
mkdir($this->bakDir, 0755);
工作正常。
echo(\Config::get('app.dbBackupDirPerms'));
echo(intval(\Config::get('app.dbBackupDirPerms')));
mkdir($this->bakDir, intval(\Config::get('app.dbBackupDirPerms')));
0755
755
创建目录但权限不正确
将\Config::get('app.dbBackupDirPerms');
作为字符串传递也不会让我感到意外,我认为mkdir
不会对其进行类型检查
到底有没有,我在这里错过了什么?相对较新的PHP,但我想这必定是一个相对常见的事件。
答案 0 :(得分:1)
您需要将int转换为八进制
mkdir($this->bakDir, intval(\Config::get('app.dbBackupDirPerms'), 8 ));