实现思路:
需要对传入的文件路径判断是文件还是目录,如果是目录,那么使用scandir()函数进行升序排序,可以得到文件在前,目录在后的排序,方便遍历文件时,判断文件是否存在多级,如果不存在,则删除目录下的当前文件,如果存在多级目录,则依次递归文件夹进行删除,直到整个文件夹下的文件全部删除。
<?php
function delDirFile($dir,$filetype='')
{
if(is_dir($dir)){
$files=scandir($dir);
foreach($files as $filename){
if($filename!='.' && $filename!='..'){
if(!is_dir($dir.'/'.$filename)){
if(empty($filetype)){
unlink($dir.'/'.$filename);
}else{
if(is_array($filetype)){
if(preg_match($filetype[0],$filename)){
unlink($dir.'/'.$filename);
}
}else{
if(false!=stristr($filename,$filetype)){
unlink($dir.'/'.$filename);
}
}
}
}else{
delDirFile($dir,'/'.$filename);
rmdir($dir.'/'.$filename);
}
}
}
}else{
if(file_exists($dir)) unlink($dir);
}
}