php自动创建文件夹

作者:enenba | 发表于:2012-01-15 23:32 | 分类:php源码

     在php操作文件中,遇到了创建多级文件夹,其实一级别的创建文件夹很简单,就mkdir(路径)即可,但是遇到了多级文件夹,这就得写函数来创建多级文件夹.

     这个函数对采集也提供了方便,比如:下载文件创建目录结构


下面的函数就是自动创建多级文件夹.运用到几个php函数,并在下面解释了

function creatdir($path){
	if(!is_dir($path)){
		if(creatdir(dirname($path))){
			mkdir($path,0777);
			return true;
		}
	}else{
		return true;
	}
}
creatdir("a/b/c/d");

函数说明
is_dir:判断给定文件名是否是一个目录,如果是返回ture,如果不是返回false
dirname:返回路径中的目录部分,本函数返回去掉文件名后的目录名.比如$path="a/b/c";那么dirname($path)="a/b"
mkdir:尝试新建一个由 pathname 指定的目录。mkdir(string pathname [,int mode]),默认的 mode 是 0777,意味着最大可能的访问权


解释一下自动创建文件夹:
creatdir("a/b/c/d")//调用创建函数
    首先判断整个目录是不是文件夹(或者说是不是存在),如果存在,返回真,则返回,不执行,如果不存在.则继续
不存在,判断其去掉最后目录名的是否存在:creatdir(dirname($path)):调用自身创建函数判断,如果存在则继续,创建$path
如果不存在,则再次去掉最后目录名,继续判断....直到最后判断a,
 

    到了文件所在文件夹,首先判断是否是文件夹,是:返回ture,返回上一级creatdir(dirname($path)),判断/成功,则创建$path,/a/.mkdir($path,0777);返回真,再次返回上一级creatdir(dirname($path)),判断/a/成功,则创建/a/b/ .....依次类推.创建,最后返回ture.

 

以上就是php自动创建文件夹

 

end

上一篇: 根据相对目录来创建目录   |   下一篇:php如何将相对路径转换为绝对路径» 标签: php函数

评论: