【问题标题】:php mkdir pass perrmissions from stringphp mkdir 从字符串传递权限
【发布时间】: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

标签: php mkdir octal


【解决方案1】:
$originalUmask = umask(0); // sets umask to 0 and return original

// do your mkdir here

umask($originalUmask); // back to safe again ;)

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 2014-05-07
    • 2018-06-09
    • 2011-04-15
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多