欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中mkdir函数递归创建目录(文件夹)_PHP教程

程序员文章站 2022-04-12 09:07:31
...
在php中mkdir函数是创建目录它自身是不可以递归创建目录了,我们需要遍历进行目录然后调用mkdir即可,下面来看一下操作方法。

代码如下 复制代码

/**
* Makes directory and returns BOOL(TRUE) if exists OR made.
*
* @param $path Path name
* @return bool
*/
function rmkdir($path, $mode = 0755) {
$path = rtrim(preg_replace(array("/\\/", "//{2,}/"), "/", $path), "/");
$e = explode("/", ltrim($path, "/"));
if(substr($path, 0, 1) == "/") {
$e[0] = "/".$e[0];
}
$c = count($e);
$cp = $e[0];
for($i = 1; $i if(!is_dir($cp) && !@mkdir($cp, $mode)) {
return false;
}
$cp .= "/".$e[$i];
}
return @mkdir($path, $mode);
}

?>

例2

Somehow the recursive version of mkdir didn't work for me on Mac and the workaraounds listed

below alsow didn't work for me, so heres my solution:

代码如下 复制代码

function mkdir_r($dirName, $rights=0777){
$dirs = explode('/', $dirName);
$dir='';
foreach ($dirs as $part) {
$dir.=$part.'/';
if (!is_dir($dir) && strlen($dir)>0)
mkdir($dir, $rights);
}
}
?>

Tested and works ;)


例3

代码如下 复制代码

function mkdirs($dir)

{

if(!is_dir($dir))

{

if(!mkdirs(dirname($dir))){

return false;

}

if(!mkdir($dir,0777)){

return false;

}

}

return true;

}

function rmdirs($dir)

{

$d = dir($dir);

while (false !== ($child = $d->read())){

if($child != '.' && $child != '..'){

if(is_dir($dir.'/'.$child))

rmdirs($dir.'/'.$child);

else unlink($dir.'/'.$child);

}

}

$d->close();

rmdir($dir);

}


三个创建目录的函数都有自己的优点,这里我也没有一个个测试了,只使用了第二个感觉非常的不错。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/633126.htmlTechArticle在php中mkdir函数是创建目录它自身是不可以递归创建目录了,我们需要遍历进行目录然后调用mkdir即可,下面来看一下操作方法。 例 代码如...