mkdir创建多个子目录php / apache

时间:2012-04-27 23:14:47

标签: php linux apache mkdir

mkdir ("dir1/{dir1-1,dir1-2}",0755,TRUE);

此命令使用名为“{dir1-1,dir1-2}”的单个子文件夹创建文件夹dir1,而不是将dir1-1和dir1-2创建为dir1的两个子文件夹。

任何想法如何从上面的单个mkdir命令开始工作?

2 个答案:

答案 0 :(得分:6)

PHP不支持大括号扩展,就像shell一样。如果要创建多个目录,则必须多次调用mkdir(),并且可以通过循环轻松完成此操作。

您可以将TRUE作为第三个参数传递给mkdir() - 这意味着如果它们不存在且父级是可写的,那么备份树的所有目录也将被创建。在循环操作时,您可以安全地将TRUE传递给所有调用,给定目录的第一次迭代将创建它,后续调用将不会产生任何不利影响。

例如:

$toCreate = array(
  'dir1/dir1-1',
  'dir1/dir1-2'
);

$permissions = 0755;

foreach ($toCreate as $dir) {
  mkdir($dir, $permissions, TRUE);
}

答案 1 :(得分:1)

shell mkdir可以这样做:

mkdir -p /foo/bar/peng

所以现在你可以从php中调用外部shell命令。但要注意安全。