当前位置:编程学习 > php >>

php循环创建目录的方法和代码


php循环检测目录是否存在并创建(循环创建目录)

 

 

这个会生成image.gif目录


$filepath = "test/upload/2010/image.gif";
mk_dir($filepath);
// 循环创建目录
function mk_dir($dir, $mode = 0755)
{
if (is_dir($dir) || @mkdir($dir,$mode)) return true;
if (!mk_dir(dirname($dir),$mode)) return false;
return @mkdir($dir,$mode);
}

第二种方法:
复制代码 代码如下:

<?php
$filepath = "test/upload/2010/image.gif";
createDir(dirname($filepath));
//接下来就可以move_uploaded_file了!

/*
* 功能:循环检测并创建文件夹
* 参数:$path 文件夹路径
* 返回:
*/
function createDir($path){
if (!file_exists($path)){
createDir(dirname($path));
mkdir($path, 0777);
}
}
?>

===============================
如何运用php函数mkdir创建多级目录

php函数mkdir参数与描述
path 必需。规定要创建的目录的名称。
mode 必需。规定权限。默认是 0777。
recursive 必需。规定是否设置递归模式。
context 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。

说明

php函数mkdir 尝试新建一个由 path 指定的目录。

默认的 mode 是 0777,意味着最大可能的访问权。

php默认的mkdir一次只能创建一层目录,如果在当前目录下创建一个div/css/layout 的目录就需要逐层逐层的先创建div,再创建div/css 再创建 div/css/layout,然而我们希望能让程序自动帮我们完成这个过程。

其实思路也很简单,1.先判断 div目录是否存在,不存在则创建;2.判断子目录 div/css 是否存在,不能存在则创建,3.在第二步中以子目录作为参数递归调用函数本身。也可以按相反顺序来,1.先判断最底层目录div/css/layout是否存在;2.判断div/css/layout的上层目录div/css是否存在,不存在则以div/css作为参数递归进行。。

下面是php函数mkdir的程序代码:

function mkdirs($dir) 

if(!is_dir($dir)) 

if(!mkdirs(dirname($dir))){ 
return false; 

if(!mkdir($dir,0777)){ 
return false; 


return true; 

mkdirs('div/css/layout'); 
同样的思路,php用rmdir和unlink递归删除多级目录的代码: 
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); 
}
以上代码示例就是php函数mkdir实现创建多级目录的具体方法

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,