<?php
/**
* @desc 解析当前目录并递归删除目录下的指定文件
* @author mengdj<mengdj@outlook.com> 2014.10.02 1530
*/
//定义脚本持续执行直到退出为止
set_time_limit(0);
ignore_user_abort(true);

$global_filter=array("html","css","php","htm","txt","inc","js","vbs");
$global_filter&&$global_filter=array_flip($global_filter);

//获取文件后缀
if(!function_exists("get_extension")){
function get_extension($file){
return substr($file,strrpos($file,'.')+1);
}
}

//递归删除空目录
if(!function_exists("rm_empty_dir")){
function rm_empty_dir($path){
if(is_dir($path) && ($handle = opendir($path))!==false){
while(($file=readdir($handle))!==false){
if($file!='.'&&$file!='..'){
$curfile = $path.'/'.$file;
if(is_dir($curfile)){
rm_empty_dir(
$curfile);
if(count(scandir($curfile))==2){
echo ($curfile)." D<br/>";
@
rmdir($curfile);
}
}
}
}
closedir($handle);
}
}
}

//递归删除指定文件类型
if(!function_exists("scan_dirs")){
function scan_dirs($baseDir){
global $global_filter;
if($file_handler=opendir($baseDir)){
while(($file=readdir($file_handler))!==false){
if($file!='.'&&$file!='..'){
if(!is_dir($baseDir."/".$file)){
if($file!="scan.php"&&array_key_exists(strtolower(get_extension($baseDir."/".$file)),$global_filter)){
echo $baseDir."/".$file."<br/>";
@
unlink($baseDir."/".$file);
//检测是否为为空目录
}
}
else{
$dirname = $baseDir."/".$file;
scan_dirs(
$dirname);
}
}
}
//判断目录是否为空
rm_empty_dir($baseDir);
closedir($file_handler);
}
}
}

$baseDir=".";
isset($_GET['dir'])&&$baseDir=trim($_GET['dir']);
scan_dirs(
$baseDir);
?>

相关文档:php服务器端清理无效软链接

更多相关文章

  1. php 无限级分类 递归+sort排序 和 非递归
  2. 韩顺平_php从入门到精通_视频教程_学习笔记_源代码图解_PPT文档
  3. php读取目录及子目录下所有文件名的方法
  4. php预定义常量目录分隔符
  5. SQLSTATE [HY000] [2002]没有这样的文件或目录
  6. mysql启动脚本——指定数据目录并指定配置文件
  7. 多个mysql数据库怎么指定到多个不同文件目录
  8. mysql安装后不能重新修改目录文件夹的名字?
  9. MySQL数据目录结构

随机推荐

  1. Android 下的Search
  2. 安卓APP开发中的屏幕适配问题如何解决?
  3. Android开发--NDK之环境搭建
  4. Android的设计与实现:卷I
  5. Android(安卓)界面类 Activity 和 Fragme
  6. Android聊天室(客户端)
  7. 关于FrameLayout布局的位置问题
  8. Android:使用命令行工具adb、mksdcard等
  9. Android的交叉编译工具
  10. (转)android SQLite的使用