从.env变量向PHP的mkdir添加八进制位

时间:2018-03-23 11:13:27

标签: php laravel-5.3

我遇到一个问题,当我尝试从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,但我想这必定是一个相对常见的事件。

1 个答案:

答案 0 :(得分:1)

您需要将int转换为八进制

mkdir($this->bakDir, intval(\Config::get('app.dbBackupDirPerms'), 8 ));