PHP 删除目录和目录下面的文件 > 知识库

阅读全文
搜索全站

知识库

PHP PHP 删除目录和目录下面的文件

页面信息

作者 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 评论 0个 点击 688次 发布时间 18-12-04 18:37

全文

在linux系统下面,我们总有一些删除不了的目录,或者你想快速删除目录,可以使用这个代码

功能如下

1.支持删除当前目录及以下目录的所有文件

2.支持删除指定目录及以下目录的所有文件

3.支持过滤文件和文件夹

配置如下 $path=".";//在些设置所删除的目录.为当前目录

如:删除path目录,引号里请添

path; $guolv="del.php,install.php,path";//设置需要过滤的文件或文件夹用英文状态下,号分隔

警告 1.用之前请先看明白以下的配置说明,如果没看明白请加QQ咨询 2.用完后请及时删除本文件

<?php
header("content-Type: text/html; charset=utf-8");
//配置开始
$path=".";//在些设置所删除的目录.为当前目录 如:删除path目录,引号里请添path;
$guolv="del.php,install.php,path";//设置需要过滤的文件或文件夹用英文状态下,号分隔
//配置结束
if($_GET['action']=="del"){
	$file= array_values_recursive(recurdir($path,$guolv));
	foreach($file as $k => $v){
		remove_directory($v);
	}
}else{
	echo "您的配置如下<br>
	要删除的目录为:
	";
	if($path==".")echo "当前目录";else echo $path;
	echo "<br>您要过滤的文件或文件夹有:".$guolv."<br>
	如果确认过滤请<a href='?action=del'>点击此处开始删除相应的目录及目录下的所有文件</a>,如果配置不正确请到文件中修改
	";
}


//删除目录及文件
function remove_directory($dir) {
  foreach(glob($dir) as $fn) { 
  		echo " removing $fn<br>\n";
		if (!is_writable($fn))@chmod($fn, 0777);
		if(is_dir($fn)){@rmdir($fn);}else{@unlink($fn);}
   } 
}
//扫描目录
function recurdir($pathname,$guolv='del.php')
{
	$result=array();$temp=array();
	//检查目录是否有效和可读
	if(!is_dir($pathname) || !is_readable($pathname))
	return null;
	//得到目录下的所有文件夹
	$allfiles=scandir($pathname);
	foreach($allfiles as $key => $filename)
	{
		//如果是“.”或者“..”的话则略过
		if(in_array($filename,array('.','..')))continue;
		if(count($guolv)>0){$lv=explode(",",$guolv);if(in_array($filename,$lv))continue;}
		
		//得到文件完整名字
		$fullname =$pathname . "/" .$filename;
		//如果该文件是目录的话,递归调用recurdir
		$temp[]=$fullname;
		if(is_dir($fullname)){
			$nowpath=explode("/",$fullname);
			if(count($guolv)>0){$lv=explode(",",$guolv);if(in_array($nowpath[count($nowpath)-1],$lv))continue;}
			$result[$filename] = recurdir($fullname);}
	}	
	//最后把临时数组中的内容添加到结果数组,确保目录在前,文件在后
	foreach($temp as $f){
		$result[]=$f;
	}
	return $result;
}
//获取所有文件
function array_values_recursive($ary)
{
   $lst = array();
   foreach( array_keys($ary) as $k ){
	 $v = $ary[$k];
	 if (is_array($v)) {$lst = array_merge( $lst, array_values_recursive($v));}else{$lst[] = $v;}
   }
   return $lst;
}
?> 

警告:还是删除为好哦,或者改文件后缀,也可以加一个登录密码

推荐0

评论列表

还没有评论内容

Total 84件 1 页
知识库 目录
序号 主题 作者 点击 推荐 日期
84 G5安全补丁 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 217 0 03-17
83 G5安全补丁 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 253 0 03-01
82 PHP no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 899 0 01-14
81 Windows no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 465 0 01-10
80 G5安全补丁 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 824 0 01-09
79 G5 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 529 0 01-04
78 程序 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 918 0 12-31
77 G5 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 571 0 12-30
76 G5 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 2 0 12-28
75 G5安全补丁 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 835 0 12-28
74 G5 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 593 0 12-22
73 G5 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 677 0 12-22
72 Windows no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 519 0 12-18
71 Windows no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 563 0 12-18
70 正规则 no_profile admin 发送站内信 发送邮件 自我介绍 使用ID搜索 所有主题 1181 0 12-17
搜索主题

会员登录

在线投票

你目前的站点使用什么程序呢?

访问人数统计

今天
128
昨天
135
最大
296
全部
22,315

gnuboard5
Copyright © lonei.com. All rights reserved. Version 5.3.2.7