PHP 递归创建目录
/*
用迭代的方法递归创建目录
其实在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 递归创建目录的更多相关文章
- lua中清空目录和递归创建目录
lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下os.execute("mkdi ...
- php 递归创建目录、递归删除非空目录、迭代创建目录
递归创建目录 方法一 function mk_dir($path){ if(is_dir($path)){ //参数本身是一个目录 return true; } if(is_dir(dirname($ ...
- mkdir递归创建目录
mkdir递归创建目录 rmdir递归删除目录 -p:父目录为空时,一并进行创建-v:命令执行结果可视化mkdir -pv /tmp/x/y/zrmdir -p /tmp/x/y/z mkdir -p ...
- php递归创建目录
/** * 递归创建目录 * @param [string] $path [创建的目录] * @return [type] [description] */ function mk_Dir($path ...
- php之递归调用,递归创建目录
/* 递归自身调用自身,每次调用把问题简化,直到问题解决 即:把大的任务拆成相同性质的多个小任务完成 */ /* function recsum($n){ if($n>1){ return $n ...
- nodejs递归创建目录,同步和异步方法
nodejs递归创建目录,同步和异步方法.在官方API中只提供了最基本的方法,只能创建单级目录,如果要创建一个多级的目录(./aaa/bbb/ccc)就只能一级一级的创建,感觉不是很方便,因此简单写了 ...
- nodejs 递归创建目录
nodejs没有递归创建目录的方法,以前创建的时候是将目录通过path.sep,然后再一步步判断,这个方法在windows下面遇到盘符的时候,然后蛋疼了.今天又用到了这个功能,突然想到了另外一种方法, ...
- Linux mkdir 如何递归创建目录?
mkdir 如何递归创建目录? mkdir –vp 目录1/目录2/目录3 详细介绍: linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目 ...
- nodejs递归创建目录
var fs = require("fs"); var path = require("path"); // 递归创建目录 异步方法 function mkdi ...
随机推荐
- .NET实现单点登录研究过程总结--【SSO】
一.单点登录实现结果: 权限系统登录后,新生系统通过拦截器,获取本地的cookie能够訪问该系统:权限系统用户注销后,销毁本地cookie.訪问新生链接.自己主动跳转到登录首页. 二.主要遇到的问题: ...
- Gradle的安装与配置
Gradle的下载地址:http://gradle.org/gradle-download/ Tips:要先安装JDK并配置其环境变量. 下载完成后将里面的文件解压出来,如下图所示: 添加一个名称为G ...
- 获取设置dom属性
getAttribute():获取dom节点属性,带一个参数,表示要获取的属性使用方法:object.getAttribute("id"); setAttribute():设置do ...
- 文件I/O(不带缓冲)之read函数
调用read函数从打开文件中读数据. #include <unistd.h> ssize_t read( int filedes, void *buf, size_t nbytest ); ...
- iOS常见文件及程序的启动原理
一. iOS中常见文件 (一). Xcode6之前 创建项目,默认可以看见一个存放框架的文件夹 info文件以工程文件名开头,如:第一个项目-Info.plist 项目中默认有一个PCH文件 (二). ...
- Fixflow引擎解析(二)(模型) - BPMN2.0读写
Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...
- javascript笔记05:函数表达式和函数语句的区别
1.首先是函数语句: myfunc(); function myfunc() { //执行一些语句 } 当函数语句被定义的时候,在一个脚本代码被优先考虑,因此,无论该函数是定义之前或者定义之后都可以被 ...
- multi-threads synchronization use conditional mutex
#include <pthread.h> int thread_flag; pthread_cond_t thread_flag_cv; pthread_mutex_t thread_fl ...
- (转)FastDFS_v5.05安装配置
http://my.oschina.net/shking/blog/165326 http://blog.csdn.net/yecong111/article/details/42646523 htt ...
- 这五个题你懂了javascript你就入门了
1. if (!("a" in window)) { var a = 1; } alert(a); 阅读代码:如果window不包含属性a,就声明一个变量a,然后赋值为1,最后弹出 ...