/*
用迭代的方法递归创建目录
其实在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. SQL书写技巧

    SQL书写技巧: 1.针对分区表,如果可以使用分区条件的,一定要加分区条件.分区条件的使用,可以减少不必要的数据访问,加快查询数据,如TB_CSV_ACCEPT_FLOW_OPERATOR表,以acc ...

  2. 第二章 使用JavaScript

    只要一提到把JavaScript放在网页中,就不得不涉及Web的核心语言-HTML.在当初开发JavaScript的时候,Netscape要解决的一个重要问题就是如何让JavaScript既能在HTM ...

  3. Templates

    Templates Templates are the site's markup, where images and js, css files are located as well as the ...

  4. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  5. 利用QT开发一个记事本

    区别于之前创建爱的各个工程,这次我们在这里选择基类为QMainWindow. 然后默认目录就是 直接到对应文件中进行代码的书写: main.cpp: #include "mainwindow ...

  6. DROP--删除表

    DROP TABLE table_name; 说明: 1.必须有表的权限 2.表不能有外键约束

  7. 【暴力模拟】UVA 1594 - Ducci Sequence

    想麻烦了.这题真的那么水啊..直接暴力模拟,1000次(看了网上的200次就能A)后判断是否全为0,否则就是LOOP: #include <iostream> #include <s ...

  8. ASP.NET MVC 4应用程序文件夹

    App_Start It has configuration classes to reduce clutter code in the Global.asax 它包含了配置类来减少在Global.a ...

  9. SQL 树结构统计数据

    create table #Tmp( ID int IDENTITY (1,1) not null, name varchar(50), sl int); DECLARE @ID VARCHAR(36 ...

  10. Sqlserver 理解子查询

    理解子查询: 理解子查询: 多表连接查询往往也可以用子查询进行替代 子查询本质是嵌套进其他 select update insert Delete 语句的一个被限制的select语句,在子查询中,只有 ...