为什么在PHP中如果使用Mkdir递归标志,那么nest目录不是chmod吗?

时间:2013-09-07 21:21:49

标签: php chmod mkdir

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

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

我已经尝试过做

 chmod('path_one/path_two', 0777);

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

2 个答案:

答案 0 :(得分:8)

mkdir功能正常。创建的中间目录基于当前的umask设置。你想要这样的东西:

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

答案 1 :(得分:2)

来自php manual

  

模式也会被当前的umask修改,您可以更改   使用umask()

请注意umask()中{<1}}中设置的任何位都在mkdir()使用的结果中未设置。默认的umask是0022,mkdir的默认创建模式是0777,结果值为0755.这适用于所有创建的目录。