• 技术文章 >后端开发 >PHP问题

    php如何递归删除目录

    藏色散人藏色散人2020-07-31 09:55:00原创83

    php递归删除目录的方法:首先创建一个PHP示例文件;然后通过“DATA_DIR .'/compiled/';”方法获取文件所在路径;接着列出文件和目录;最后使用递归方法删除目录即可。

    推荐:《PHP视频教程

    php 递归删除目录

    首先要知道什么是递归,这样之后在去读递归代码,以及写都轻而易举

     下边所列出的递归代码,是删除文件目录,可做稍微改动显示文件及目录

    代码如下:

    public function clear(){
        $compile  = DATA_DIR .'/compiled/';  //指文件所在路径
        _rmdir($compile,1);
     }
    // 列出文件和目录
    function _scandir($dir) {
        if(function_exists('scandir')) return scandir($dir);   // 有些服务器禁用了scandir
        $dh = opendir($dir);
        $arr = array();
        while($file = readdir($dh)) {
            if($file == '.' || $file == '..') continue;
            $arr[] = $file;
        }
        closedir($dh);
        return $arr;
    }
    // 递归删除目录
    function _rmdir($dir, $keepdir = 0) {
        if(!is_dir($dir) || $dir == '/' || $dir == '../') return FALSE;    // 避免意外删除整站数据
        $files = _scandir($dir);
        foreach($files as $file) {
            if($file == '.' || $file == '..') continue;
            $filepath = $dir.'/'.$file;
            if(!is_dir($filepath)) {
                try{unlink($filepath);}catch(Exception $e){}
            }else{
                _rmdir($filepath);
            }
        }
        if(!$keepdir) try{rmdir($dir);}catch(Exception $e){}
        return TRUE;
    }

    以上就是php如何递归删除目录的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php 递归
    上一篇:php如何递归删除文件 下一篇:php如何对txt文件进行修改
    第12期线上周末培训班

    相关文章推荐

    • PHP使用递归按层级查找数据(代码详解)• PHP递归函数用法• PHP递归算法的应用(含示例)• php如何递归删除文件

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网