/*
用迭代的方法递归创建目录
其实在PHP5.0.0之后mkdir就已经能递归创建目录了。
这里主要是自己学习迭代,所以拿创建级联目录开刀了。
开发中应该写mkdir('./a/b/c/d/e',0777,true);
官方说明:
在 PHP 中可以调用递归函数。
但是要避免递归函数/方法调用超过 100-200 层,
因为可能会使堆栈崩溃从而使当前脚本终止。
*/
function itMkDir($path)
{
//定义一个数组,用来存放需要工作创建目录的任务
$arr = array();
//如果要创建的目录不存在,则表示有任务追加
while (!is_dir($path)) {
array_unshift($arr, $path);
//将任务追加后取父目录
$path = dirname($path);
}
//如果没有任务(即:需要创建的目录已经存在)
if (empty($arr)) {
return true;
}
//否则开始执行任务
foreach ($arr as $k => $v) {
//由上面的array_unshift压入方式,可直接这样调用
mkdir($v);// ? print('创建' . $v . '目录成功!<br>') : print('创建失败->' . $v . '<br>');
}
return true;
}

PHP 递归创建目录的更多相关文章

  1. lua中清空目录和递归创建目录

    lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下os.execute("mkdi ...

  2. php 递归创建目录、递归删除非空目录、迭代创建目录

    递归创建目录 方法一 function mk_dir($path){ if(is_dir($path)){ //参数本身是一个目录 return true; } if(is_dir(dirname($ ...

  3. mkdir递归创建目录

    mkdir递归创建目录 rmdir递归删除目录 -p:父目录为空时,一并进行创建-v:命令执行结果可视化mkdir -pv /tmp/x/y/zrmdir -p /tmp/x/y/z mkdir -p ...

  4. php递归创建目录

    /** * 递归创建目录 * @param [string] $path [创建的目录] * @return [type] [description] */ function mk_Dir($path ...

  5. php之递归调用,递归创建目录

    /* 递归自身调用自身,每次调用把问题简化,直到问题解决 即:把大的任务拆成相同性质的多个小任务完成 */ /* function recsum($n){ if($n>1){ return $n ...

  6. nodejs递归创建目录,同步和异步方法

    nodejs递归创建目录,同步和异步方法.在官方API中只提供了最基本的方法,只能创建单级目录,如果要创建一个多级的目录(./aaa/bbb/ccc)就只能一级一级的创建,感觉不是很方便,因此简单写了 ...

  7. nodejs 递归创建目录

    nodejs没有递归创建目录的方法,以前创建的时候是将目录通过path.sep,然后再一步步判断,这个方法在windows下面遇到盘符的时候,然后蛋疼了.今天又用到了这个功能,突然想到了另外一种方法, ...

  8. Linux mkdir 如何递归创建目录?

    mkdir 如何递归创建目录? mkdir –vp 目录1/目录2/目录3   详细介绍: linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目 ...

  9. nodejs递归创建目录

    var fs = require("fs"); var path = require("path"); // 递归创建目录 异步方法 function mkdi ...

随机推荐

  1. [Bootstrap] 6. Navigation

    Too Much Navigation? How many of Bootstrap's Navigation Components can we use on a page? 0 1 More th ...

  2. iOS开发——总结篇&IOS开发基础知识

    IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...

  3. 实例源码--Android简单团购应用源码

      下载源码   技术要点: 1.HTTP通信技术 2.XML数据解析 3.控件的简单应用 4.源码带有非常详细的中文 注释 ...... 详细介绍: 1. HTTP通信技术 通 过HTTP通信技术, ...

  4. 根据ip地址从第三方接口获取详细的地理位置

    最近项目某个功能需要根据ip地址从第三方接口获取详细的地理位置,从网上找了很多例子,主要接口有新浪的,淘宝的,腾讯的.试了淘宝的,如果是数量级小的还可以,如果数量级达到上十万级就速度慢了,会导致系统崩 ...

  5. MySQL(16):Select-union(联合查询)

    1. Select-union(联合查询) union用于把来自许多SELECT语句的结果组合到一个结果集合中. 用法: SELECT ...UNION [ALL | DISTINCT]SELECT ...

  6. Linux系统故障处理案例(一)

    运行环境:CentOS6.7 故障原因: 昨天在线执行命令yum -y update 在命令执行途中,强制中断并直接运行poweroff命令关机.再次开机出现如图所示故障指示: 根据提示信息分析,可能 ...

  7. loadjs异步加载javascript回调

    function loadjs(url,callback){    var script=document.createElement('script');     script.type=" ...

  8. 春&风

    流光飞舞中,消逝的背影连同流动的人群,早已荒凉. 谁是谁的谁?落入尘世间,只是光阴下面的一粒尘埃. 那些时光,那些爱,渐行渐远. 留在心底,淡淡的思念,如轻风一阵, 吹过 彼此的容颜.

  9. SSRS中加入书签功能及数据集窗口

    SSRS在使用过程中,是比较好用的,但如果报表过长,则会比较难看到想看的内容,在SSRS中有书签功能,可以将报表直接直接跳转至书签位置,这样用户可以比较精准的定位到关注位置.使用一个文本框或是图片,再 ...

  10. PHP基础2

    一.函数赋值问题   function add($num1,$num2=5){ echo $num1+$num2; } add(5,19);   二.global 全局变量 把变量加入到全局变量数组中 ...