【问题标题】:Adding octal bit to PHP's mkdir from .env variable从 .env 变量向 PHP 的 mkdir 添加八进制位
【发布时间】:2018-03-23 11:13:27
【问题描述】:

我有一个问题,当我尝试从 Laravel 中的 .env 文件加载权限字符串,然后尝试将其用作 mkdir 中文件模式 arg 的 int 时,它会删除八进制位 @987654323 @ 并因此导致 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 来说相对较新,但我想这一定是一个比较普遍的现象。

【问题讨论】:

标签: php laravel-5.3


【解决方案1】:

您需要将 int 转换为八进制

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

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 2021-01-21
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2011-09-20
    相关资源
    最近更新 更多