|
发表于 2008 年 4 月 8 日 13:43:40
|
显示全部楼层
- <?php
- /*
- +----------------------------------------------------------------------+
- | PHP Version 4 |
- +----------------------------------------------------------------------+
- | PRO_Name : 目录/文件删除管理器 |
- | Author : windnets |
- | C_Date : 2004-1-3 |
- | M_Date : 2004-1-4 |
- | WebSite : http://www.chenfeng.net |
- +----------------------------------------------------------------------+
- */
- // 删除目录.若$delSelf=0,则保留自身目录;若$delSelf=1,则连同自身目录也删除.
- function rm_dir($dir, $delSelf="0") {
- if(@!$opendir = opendir($dir)) {
- return false;
- }
- while(false !== ($readdir = readdir($opendir))) {
- if($readdir !== '..' && $readdir !== '.') {
- $readdir = trim($readdir);
- if(is_file($dir.'/'.$readdir)) {
- if(@!unlink($dir.'/'.$readdir)) {
- return false;
- }
- } elseif(is_dir($dir.'/'.$readdir)) {
- if(!rm_dir($dir.'/'.$readdir)) {
- return false;
- }
- if(@!rmdir($dir.'/'.$readdir)) {
- return false;
- }
- }
- }
- }
- closedir($opendir);
- if($delSelf == 1) {
- if(@!rmdir($dir)) {
- return false;
- }
- }
- return true;
- }
- // 获取文件列表
- function get_dir_list($dir) {
- if(@ ! $opendir = opendir($dir)) {
- return false;
- }
- while(false !== ($readdir = readdir($opendir))) {
- if($readdir !== '..' && $readdir !== '.') {
- $readdir = trim($readdir);
- if($readdir == "index.php")
- continue;
- $dir_list[] = $dir.'/'.$readdir;
- }
- }
- closedir($opendir);
- return $dir_list;
- }
- // 显示文件列表
- function show_dir($dir) {
- global $total;
- $dir_list = get_dir_list($dir);
- if(is_array($dir_list))
- $dir_list = array_reverse($dir_list);
- $total = count($dir_list);
- $p = $_GET['p'] ? $_GET['p'] : 1;
- if(is_array($dir_list)) {
- for($i=($p-1)*10;$i<$p*10;$i++) {
- if($i > $total-1)
- break;
- $show_file = $dir_list[$i];
- if(is_dir($show_file)) {
- $show_files = '<A HREF="'.$_SERVER[PHP_SELF].'?dir='.$show_file.'">'.$show_file.'</A>';
- } else {
- $show_files = $show_file;
- }
- show_dir_tpl($show_file, $show_files);
- }
- }
- }
- // 分页函数 from punbb.
- function paging($num_pages, $p, $base_url) {
- if ($num_pages <= 1)
- $string = '<u>1</u>';
- else
- {
- if ($p > 4)
- $string = '<a href="'.$base_url.'&p=1"><<</a> ;-';
- for ($current=$p-3, $stop=$p+4; $current < $stop; $current++)
- {
- if ($current < 1 || $current > $num_pages)
- continue;
- else if ($current != $p)
- $string .= ' ;<a href="'.$base_url.'&p='.$current.'">'.$current.'</a>';
- else
- $string .= ' ;<b>'.$current.'</b>';
- }
- if ($p < ($num_pages-3))
- $string .= ' ;- ;<a href="'.$base_url.'&p='.$num_pages.'">>></a>';
- }
- return $string;
- }
- // 页首模板
- function header_tpl($upper_dir) {
- print <<<E
- <HTML>
- <HEAD>
- <TITLE> 目录/文件删除管理器 </TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <style type='text/css'>
- body {
- margin: 10px 10px 10px 10px;
- color: #333333;
- font: 9pt Verdana;
- }
- img {border: 0;}
- hr {color: #c2c2c5; height: 1px;}
- td, p, div, span {color: #333333; font-size: 9pt;}
- input, textarea {color: #333333; font: 9pt Verdana; background: #efefef;}
- textarea {width: 70%;}
- </style>
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- function del_file() {
- if(confirm('是否要删除这个文件?')) {
- with(document.form1) { action.value = 'del_file'; submit(); }
- }
- }
- function del_whole_dir() {
- if(confirm('是否要完整删除这个目录?')) {
- with(document.form1) { action.value = 'del_whole_dir'; submit(); }
- }
- }
- function del_sub_dir() {
- if(confirm('是否要删除这个目录的所有子目录及文件?')) {
- with(document.form1) { action.value = 'del_sub_dir'; submit(); }
- }
- }
- //-->
- </SCRIPT>
- </HEAD>
- <BODY>
- <CENTER>
- <FONT family="Verdana" SIZE="1">目录/文件删除管理器</FONT>
- <HR>
- <table width="100%" border="0" cellspacing="1" cellpadding="2" bgcolor="#000000">
- <TR>
- <TD bgcolor="#ffc8c8" height="3">
- <TABLE width="100%" border="0" cellspacing="0" cellpadding="2">
- <TR>
- <TD width="5%">删除</TD>
- <TD>目录/文件列表</TD>
- <TD><A HREF="$_SERVER[PHP_SELF]?dir=$upper_dir">上级目录</A></TD>
- </TR>
- </TABLE>
- </TD>
- </TR>
- </TABLE>
- <TABLE width="100%" border="0" cellspacing="1" cellpadding="2" bgcolor="#000000">
- <form name=form1 action=index.php method=post>
- <input type=hidden name=action value=del_file>
- <TR>
- <TD bgcolor="#ffc8c8" height="3">
- <TABLE width="100%" border="0" cellspacing="0" cellpadding="2">
- E;
- }
- // 列表模板
- function show_dir_tpl($show_file, $show_files) {
- print <<<E
- <TR>
- <TD width="5%"><INPUT TYPE="radio" NAME="dir_file_name" value="$show_file"></TD>
- <TD>$show_files</TD>
- </TR>
- E;
- }
- // 页脚模板
- function footer_tpl($show_page) {
- print <<<E
- </TABLE>
- </TD>
- </TR>
- </TABLE>
- $show_page
- <a href="javascript:del_whole_dir()">删除完整目录</a> ; ;
- <a href="javascript:del_sub_dir()">只删除此目录下的子目录及所有文件</a> ; ;
- <a href="javascript:del_file()">删除单个文件</a>
- <HR>
- </form>
- Written by windnets 2004-1-4
- </CENTER>
- </BODY>
- </HTML>
- E;
- }
- // MAIN START
- $dir = $_GET['dir'] ? $_GET['dir'] : '.';
- $dir_file_name = $_POST['dir_file_name'];
- $dir_array = explode("/", $dir);
- $dir_level = count($dir_array);
- $upper_dir = '.';
- for($i=1; $i<$dir_level-1;$i++) {
- $upper_dir .= '/'.$dir_array[$i];
- }
- header_tpl($upper_dir);
- if($_POST['action'] == "del_whole_dir") {
- rm_dir($dir_file_name, 1);
- print '<script type="text/javascript">window.location="'.$_SERVER[HTTP_REFERER].'"</script>';
- } elseif($_POST['action'] == "del_sub_dir") {
- rm_dir($dir_file_name);
- print '<script type="text/javascript">window.location="'.$_SERVER[HTTP_REFERER].'"</script>';
- } elseif($_POST['action'] == "del_file") {
- chmod($dir_file_name, 0777);
- unlink($dir_file_name);
- print '<script type="text/javascript">window.location="'.$_SERVER[HTTP_REFERER].'"</script>';
- } else {
- show_dir($dir);
- }
- $pages = ceil($total / 10);
- $p = $_GET['p'] ? $_GET['p'] : 1;
- $url = "index.php?dir=".$_GET['dir'];
- $show_page = paging($pages, $p, $url);
- footer_tpl($show_page);
- // MAIN END
- ?>
复制代码 |
|