php删除非空目次的要领:起首自定义一个delDir函数;然后遍历目次,读出目次中的文件或文件夹;接着将目次下的文件与当前目次相连;末了递归挪用删除子目次,并运用“rmdir”函数删除空目次即可。
php rmdir运用递归函数删除非空目次
我们人人都晓得,php rmdir()函数用于删除空目次,但假如要删除非空目次,我们必需将非空目次中的文件或子目次删除,本文章向人人引见php怎样运用递归函数删除非空目次,须要的朋侪能够参考一下。
起首向人人引见一下rmdir()函数。
php rmdir()函数
rmdir — 删除空目次
引荐:《PHP教程》
语法:
bool rmdir ( string $dirname [, resource $context ] )
尝试删除 dirname 所指定的目次。 该目次必需是空的,而且要有响应的权限。 失利时会发生一个E_WARNING级别的毛病。
参数:
dirname:目次的途径。
context:在 PHP 5.0.0 中增加了对上下文(Context)的支撑。
php rmdir()删除非空目次
上面已说过,rmdir()函数只能删除空目次,假如黑白空目次就须要先进入到目次中,运用unlink()函数将目次中的每一个文件都删撤除,再回来将这个空目次删除。假如目次中还存在子目次,而且目次也非空,就须要运用递归的要领。自定义递归函数删除目次的源代码以下:
/* by http://www.manongjc.com/article/27.html*/
function delDir($directory){//自定义函数递归的函数全部目次
if(file_exists($directory)){//推断目次是不是存在,假如不存在rmdir()函数会失足
if($dir_handle=@opendir($directory)){//翻开目次返回目次资本,并推断是不是胜利
while($filename=readdir($dir_handle)){//遍历目次,读出目次中的文件或文件夹
if($filename!='.' && $filename!='..'){//一定要消除两个特别的目次
$subFile=$directory."/".$filename;//将目次下的文件与当前目次相连
if(is_dir($subFile)){//假如是目次前提则成了
delDir($subFile);//递归挪用本身删除子目次
}
if(is_file($subFile)){//假如是文件前提则建立
unlink($subFile);//直接删除这个文件
}
}
}
closedir($dir_handle);//封闭目次资本
rmdir($directory);//删除空目次
}
}
}
delDir("mydir");//挪用delDir函数
?>
处置惩罚递归删除非空目次外,我们也能够运用操作系统敕令“rm -rf”删除非空的目次,但也要从平安和跨平台方面斟酌只管不要去运用。
以上就是php怎样删除非空目次的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0