php 递归删除目录

时间:2022-10-24 19:47:48

php递归删除目录需要注意的是原本就自动带有的“.”和“..”,还有就是如果目录中有文件,就不能直接删除

明白这点,我们就开始删吧:(删前确保./a目录存在哈)

/**
递归删除目录
**/

function deldir($path) {

// 不是目录,直接返回
if(!is_dir($path)) {
return NULL;
}

// 走到这步说明是目录
$dh = opendir($path);
while(($row = readdir($dh)) !== false) {
//过滤.和..
if($row == '.' || $row == '..') {
continue;
}

// 判断是否是普通文件
if(!is_dir($path . '/' . $row)) {
unlink($path . '/' . $row);
} else {
deldir($path . '/' . $row); //递归把子目录/子文件删了
}
}

closedir($dh);
rmdir($path);

echo '删了',$path,'<br />';
return true;

}

echo deldir('./a')?'ok':'false';