免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1815 | 回复: 0
打印 上一主题 下一主题

php目录的递归操作(创建、拷贝、删除) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-22 15:27 |只看该作者 |倒序浏览

今天做了一些关于目录的一些批量操作,在网上搜集了。目录递归的三个操作,整理如下。
希望对大家有所帮助。

1、递归创建目录

/**
*递归创建目录
*/
function mkdir_recurse($dir,$mode='0777')
{
    if(!is_dir($dir)){
           mkdir_recurse(dirname($dir),$mode);
           mkdir($dir,$mode);
    }
return true;
}
2、递归拷贝目录

/**
*批量拷贝目录(包括子目录下所有文件)
* copy a direction's all files to another direction
*用法:
* copydir_recurse("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录
* copydir_recurse("feiy","feiy2",0):拷贝feiy下的文件到 feiy2,不包括子目录
* 参数说明:
* $source:源目录名
* $destination:目的目录名
* $child:复制时,是不是包含的子目录
*/
function copydir_recurse($source,$destination ,$child){
    if(!is_dir($source)){
        echo("Error:the $source is not a direction!");
        return 0;
    }
    if(!is_dir($destination)){
        mkdir($destination,0777);
    }
    $handle=dir($source);
    while($entry=$handle->read())
    {
        if(($entry!=".")&&($entry!=".."))
        {
             if(is_dir($source."/".$entry))
             {
                 if($child)
                copydir_recurse($source."/".$entry,$destination."/".$entry,$child);
            }
            else
            {
                copy($source."/".$entry,$destination."/".$entry);
            }
        }
    }
return 1;
}

3、递归删除目录
/**
*递归删除目录(包括子目录下所有文件)
*/
function rmdir_recurse($dir) {
   if($objs = glob($dir."/*")){
       foreach($objs as $obj) {
           is_dir($obj)? rmdir_recurse($obj) : unlink($obj);
       }
   }
   rmdir($dir);
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99918/showart_2057650.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP