通常在php中我们使用mkdir只能建立一级目录,直接使用mkdir建立多级目录会提示错误,自定义函数,建立多级目录或者多层目录
inso写的
<?php
mkpath('hml/a/b/c/d/e');
function mkpath($mkpath,$mode=0777){
$path_arr=explode('/',$mkpath);
foreach ($path_arr as $value){
if(!empty($value)){
if(empty($path))$path=$value;
else $path.='/'.$value;
is_dir($path) or mkdir($path,$mode);
}
}
if(is_dir($mkpath))return true;
return false;
}
?>
偶自己写的建立多层目录的函数
<?php
function makedir($dir,$mode="0700") {
if(strpos($dir,"/")){
$dir_path="";
$dir_info=explode("/",$dir);
foreach($dir_info as $key=>$value){
$dir_path.=$value;
if(!file_exists($dir_path)){
@mkdir($dir_path,$mode) or die("建立文件夹时失败了");
@chmod($dir_path,$mode);
}else{
$dir_path.="/";
continue;
}
$dir_path.="/";
}
return $dir_path;
}else{
@mkdir($dir,$mode) or die("建立失败了,请检查权限");
@chmod($dir,$mode);
return $dir;
}
}//end makedir
makedir("0/1/2/3/");
?>
unspace提供滴多层目录建立函数
function CreateFolder($path){
if (!file_exists($path)){
CreateFolder(dirname($path));
mkdir($path, 0777) or die('目标目录权限不够,无法建立文件夹');
}
}
村长夫人提供的多级目录建立函数
function MkPath($path, $mask){
$parsePath = explode("/", $path);
$newPath = "";
foreach($parsePath as $dir){
$newPath .= $dir;
if("" != $newPath && ".." != $newPath && "." != $newPath && !is_dir($newPath)){
if(false == @mkdir($newPath, $mask)){
return false;
}
}
$newPath .= "/";
}
return true;
}
另外一个巨经典的多级目录建立函数
/*
*@functionName:Directory
*@param:str '/a/b/c/d/f'
*@returnValue:true or false
*@USAGE:Directory('/a/b/c/d/f');
*@函数作用:生成目录....@_@..太精典了..
*/
function Directory($dir){
return is_dir($dir) or (Directory(dirname($dir)) and mkdir($dir, 0777));
}
站长精心整理,请测试