找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 567|回复: 0
打印 上一主题 下一主题

PHP下几种删除目录的方法总结

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-14 09:24:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            呵呵,忽然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。
1。递规法: //我提供,好像有点不对,没测试
deleteDir($dir)
{
if (rmdir($dir)==false && is_dir($dir)) {
  if ($dp = opendir($dir)) {
   while (($file=readdir($dp)) != false) {
    if (is_dir($file) && $file!='.' && $file!='..') {
     deleteDir($file);
    } else {
     unlink($file);
    }
   }
   closedir($dp);
  } else {
   exit('Not permission');
  }
}  
}
2。系统调用法     //大师兄提供
function del_dir($dir)
{
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
     $str = "rmdir /s/q " . $dir;
} else {
     $str = "rm -Rf " . $dir;
}
}
3。循环法   //from: http://www.knowsky.com/1148.html
function deltree($pathdir)  
{  
echo $pathdir;//我调试时用的  
if(is_empty_dir($pathdir))//如果是空的  
    {  
    rmdir($pathdir);//直接删除  
    }  
    else  
    {//否则读这个目录,除了.和..外  
        $d=dir($pathdir);  
        while($a=$d->read())  
        {  
        if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}  
        //如果是文件就直接删除  
        if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))  
        {//如果是目录  
            if(!is_empty_dir($pathdir.'/'.$a))//是否为空  
            {//如果不是,调用自身,不过是原来的路径+他下级的目录名  
            deltree($pathdir.'/'.$a);  
            }  
            if(is_empty_dir($pathdir.'/'.$a))  
            {//如果是空就直接删除  
            rmdir($pathdir.'/'.$a);  
            }  
        }  
        }  
        $d->close();  
    echo "必须先删除目录下的所有文件";//我调试时用的  
    }  
}  
function is_empty_dir($pathdir)  
{
//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空
$d=opendir($pathdir);  
$i=0;  
    while($a=readdir($d))  
    {  
    $i++;  
    }  
closedir($d);  
if($i>2){return false;}  
else return true;  
}   
呵呵,足够给各种朋友用了吧,只是按照你需要和速度来论吧。
            
            
您可能感兴趣的文章:
  • PHP下用rmdir实现删除目录的三种方法小结
  • PHP删除目录及目录下所有文件的方法详解
  • php实现删除指定目录下相关文件的方法
  • php最简单的删除目录与文件实现方法
  • php递归删除目录与文件的方法
  • php判断并删除空目录及空子目录的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端