php清理当前目录下的指定文件和空目录(源码),建议服务器端执行
16lz
2021-01-22
<?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服务器端清理无效软链接
更多相关文章
- php 无限级分类 递归+sort排序 和 非递归
- 韩顺平_php从入门到精通_视频教程_学习笔记_源代码图解_PPT文档
- php读取目录及子目录下所有文件名的方法
- php预定义常量目录分隔符
- SQLSTATE [HY000] [2002]没有这样的文件或目录
- mysql启动脚本——指定数据目录并指定配置文件
- 多个mysql数据库怎么指定到多个不同文件目录
- mysql安装后不能重新修改目录文件夹的名字?
- MySQL数据目录结构