在Php中使用mkdir()创建多个目录

时间:2016-07-16 00:43:05

标签: php cpanel

我正在一个社交网站上工作,其中在注册时创建了多个目录。这是我正在使用的代码:

$path = "fb_users/Organization/" . $user . "/Profile/";
$path2 = "fb_users/Organization/" . $user . "/Post/";
$path3 = "fb_users/Organization/" . $user . "/Cover/";
mkdir($path, 0, true);
mkdir($path2, 0, true);
mkdir($path3, 0, true);

代码在我的localhost上运行良好,但是当我在cPanel托管上使用相同的代码时,代码只创建fb_users/Organization/fb@abc.com(让$ user = fb@abc.com)。它不会创建另外三个文件夹。有人请让我离开吗?

代码前的目录:

/fb_users/Organization

在localhost上运行代码后:

/fb_users/Organization/fb@abc.com/Cover
/fb_users/Organization/fb@abc.com/Post
/fb_users/Organization/fb@abc.com/Profile

使用cPanel在托管上运行相同的代码:

/fb_users/Organization/fb@abc.com (only this directory is created)

2 个答案:

答案 0 :(得分:5)

在Unix服务器上指定mode = 0时,它将创建没有读取或写入权限的顶级目录/fb_users/Organization/fb@abc.com,即使对于所有者也是如此。因此,它无权创建子目录。使用0700授予所有者完全权限,但不允许其他任何人访问它。

mkdir($path, 0700, true);
mkdir($path2, 0700, true);
mkdir($path3, 0700, true);

答案 1 :(得分:1)

尝试将第二个参数更改为0700。

编辑:Barmar打败了我,给出了更好的解释。