php怎么删除目录?是要用递归吗?

解决方案 »

  1.   

    在php的内置文件操作函数中,rmdir()可以删除删除一个空目录,然而一旦目录非空,rmdir就没辙了,那么现在我们就来写个删除/清空目录的函数吧:
    function rmdirR($directory,$clear=false){
            //如果给定路径末尾包含"/",先将其删除
            if(substr($directory,-1)=="/"){
                    $directory=substr($directory,0,-1);
            }
            else{
                    //如给出的目录不存在或者不是一个有效的目录,则返回
                    if(!file_exists($directory)||!is_dir($directory)){
                            return false;
                    }
                    //如果目录不可读,则返回
                    elseif(!is_readable($directory)){
                            return false;
                    }else {
                            //打开目录,
                            $dir= opendir($directory);
                            //当目录不空时,删除目录里的文件
                            while(false!==($entry=readdir($dir))){
                                    //过滤掉表示当前目录的"."和表示父目录的".."
                                    if($entry!="."&&$entry!=".."){
                                            $path=$directory."/".$entry;
                                            //为子目录,则递归调用本函数
                                            if(is_dir($path)){
                                                    rmdirR($path);
                                            }
                                            //为文件直接删除
                                            else{
                                                    unlink($path);
                                            }
                                    }
                            }
                            //关闭目录
                            closedir($dir);
                            //当目录为空,不选清空目录
                            if(false==$clear){
                                    //删除目录
                                    if(!rmdir($directory)){
                                            return false;
                                    }
                                    return true;                        }
                    }
            }
    }
    转自:http://tiaozhan.com/talk/viewthread.php?tid=385
    多google baidu。
      

  2.   

    http://www.jb51.net/article/14215.htm
    HP下用rmdir实现删除目录的三种方法小结