使用递归函数生成subdir

时间:2017-11-04 14:53:41

标签: php function loops mkdir

给出例如3的停止编号。它将在此文件夹中创建一个文件夹而不是2个子文件夹,而不是每个子文件夹中的3个子文件夹。

如何使用简单的php递归函数来做到这一点?

这是我的代码,我不能这样做,我已经考虑过这个问题了很长时间..

function mkpath($path,$stop_turn){

    if($stop_turn==1){
      return 0;
    }


    if(!file_exists($path)){
      mkdir($path,0777,false);
    }
    else
      $path=$path.'/'.$stop_turn;

    return mkpath($path,$stop_turn-1);

}

mkpath("1",2);

2 个答案:

答案 0 :(得分:0)

以下给出的代码片段将执行以下操作,

让我们假设给路径为/ 1且$ until为3

它将创建一个1:1的子目录

在/ 1/1它将创建2个名为1和2的子目录

在/ 1/1/1和/ 1/1/2中它将创建三个名为1 2 3的子目录。

function mkpath($path, $till, $count = 1) {
    if($count > $till)
        return ;
    for($i = 1; $i<=$count; $i++ ) {
        $newPath = $path."$i";
        if(!file_exists($newPath)){
            mkdir($newPath,0777,false);
        }
        mkpath($newPath."/", $till, $count + 1);
    }
}

答案 1 :(得分:0)

应该有一个mkdir命令行参数(/ s或/ p)来创建mkdir路径参数中所有缺少的子目录