柒微网络

php递归删除文件函数封装

2019-08-25 开发语言 229

1.函数

【参数】

$dir:目录名
$keepdir:是否保留最上一级目录(留一个空壳,用来清空目录下文件)
// 递归删除目录,这个函数比较危险,传参一定要小心
function rmdir_recusive($dir, $keepdir = 0) {
	if($dir == '/' || $dir == './' || $dir == '../') return FALSE;// 不允许删除根目录,避免程序意外删除数据。
	if(!is_dir($dir)) return FALSE;
	
	substr($dir, -1) != '/' AND $dir .= '/';
	
	$files = glob($dir.'*'); // +glob($dir.'.*')
	foreach(glob($dir.'.*') as $v) {
		if(substr($v, -1) != '.' && substr($v, -2) != '..') $files[] = $v;
	}
	$filearr = $dirarr = array();
	if($files) {
		foreach($files as $file) {
			if(is_dir($file)) {
				$dirarr[] = $file;
			} else {
				$filearr[] = $file;
			}
		}
	}
	if($filearr) {
		foreach($filearr as $file) {
			xn_unlink($file);
		}
	}
	if($dirarr) {
		foreach($dirarr as $file) {
			rmdir_recusive($file);
		}
	}
	if(!$keepdir) xn_rmdir($dir);
	return TRUE;
}



使用案例:

$r = rmdir_recusive("./tmp/", 1);// 结果:TRUE/FALSE


转载请说明来源于"柒微博客"

本文地址:http://7we.net/article-129.html


文章评论

请您先登录|注册后再进行回复
回复区