6

我正在使用 mkdir 通常为文件结构创建 2 个嵌套目录。它创建的目录始终设置为 0755。但是我使用的代码是。

 mkdir('path_one/path_two', 0777, true);

我试过然后做

 chmod('path_one/path_two', 0777);

但这只会将最终目录设置为 0777。什么会导致 mkdir 无法正常运行?

4

2 回答 2

7

mkdir 运行正常。创建的中间目录是根据当前的 umask 设置的。你想要这样的东西:

umask(0777);
mkdir('path_one/path_two', 0777, true);
于 2013-09-07T21:27:53.230 回答
2

php 手册

该模式也由当前的 umask 修改,您可以使用umask()进行更改。

请注意,设置任何umask()位在. 默认 umask 为 0022,mkdir 的默认创建模式为 0777,其结果值为 0755。这适用于所有创建的目录。mkdir()

于 2013-09-07T21:36:04.017 回答