php如何递归删除目录

2020-08-12 16:59:19

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;}
相关文章 大家在看