• PHP创建多级目录


    1.递归调用方式

    function createFolder($path)
    {
       if(!file_exists($path))
       {
          ctreateFolder(dirname($path));
          mkdir($path,0700);
       }
    }

    2.数组方式

    -----------------参考1--------------------------------

    <?php

    $cdir="a/b/c/d";        //数据库里存储的字段

    //判断文件夹是否存在,并创建文件夹

    if(strpos($cdir,"/")>0){        //判断内容里是否含有"/"

    $arr=explode("/",$cdir);   //将内容以“/”分割创建成数组

    $ycj="../";//定义一个变量。指定站点根目录

    foreach($arr as $key=>$value){//循环输出数组,

    $$key=$value;//值付给变量$value

    if ($value!=""){                    //如果值不为空(因为数组的最后一个值是空的)

    if(!file_exists("".$ycj.$value."")){          //如果没有这个文件夹

     mkdir("".$ycj.$value."/");                  //创建这个文件夹

    }$ycj=$ycj.$value."/";//给$ycj重新赋值

    }

    }

    echo $ycj."文件夹已创建<br>";//最后输出文件夹路径

    }

     //已创建文件夹

    ?>  

    -----------------参考2--------------------------------

    php函数mkdir参数与描述

      path 必需。规定要创建的目录的名称。

      mode 必需。规定权限。默认是 0777。

      recursive 必需。规定是否设置递归模式。

      context 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。

      说明

      php函数mkdir 尝试新建一个由 path 指定的目录。

      默认的 mode 是 0777,意味着最大可能的访问权。

      php默认的mkdir一次只能创建一层目录,如果在当前目录下创建一个div/css/layout 的目录就需要逐层逐层的先创建div,再创建div/css 再创建 div/css/layout,然而我们希望能让程序自动帮我们完成这个过程。

      其实思路也很简单,1.先判断 div目录是否存在,不存在则创建;2.判断子目录 div/css 是否存在,不能存在则创建,3.在第二步中以子目录作为参数递归调用函数本身。也可以按相反顺序来,1.先判断最底层目录div/css/layout是否存在;2.判断div/css/layout的上层目录div/css是否存在,不存在则以div/css作为参数递归进行。。

      下面是php函数mkdir的程序代码:

    function mkdirs($dir)

    {

    if(!is_dir($dir))

    {

    if(!mkdirs(dirname($dir))){

    return false;

    }

    if(!mkdir($dir,0777)){

    return false;

    }

    }

    return true;

    }

    mkdirs('div/css/layout');

    同样的思路,php用rmdir和unlink递归删除多级目录的代码:

    function rmdirs($dir)

    {

    $d = dir($dir);

    while (false !== ($child = $d->read())){

    if($child != '.' && $child != '..'){

    if(is_dir($dir.'/'.$child))

    rmdirs($dir.'/'.$child);

    else unlink($dir.'/'.$child);

    }

    }

    $d->close();

    rmdir($dir);

    }

    以上代码示例就是php函数mkdir实现创建多级目录的具体方法。

  • 相关阅读:
    20210108 android学习
    20210106 android学习
    20210105 android学习
    20210104 android学习
    httpClient请求转发个人理解
    CefSharp如何判断页面是否加载完
    C#/WPF 使用的Task线程程序缺依旧响应缓慢问题
    修改LiveChart的提示显示位置
    Wpf双击放大缩小界面
    WPF设置无边框CefSharp显示不出来问题
  • 原文地址:https://www.cnblogs.com/kingangWang/p/2269281.html
Copyright © 2020-2023  润新知