找回密码
 注册
搜索
免费空间 免费域名 免费AI 老牌主机商首月仅1美分!27美元/年!Namecheap优惠码Spaceship优惠码
查看: 220|回复: 6

[其它资源] 删除linux虚拟主机无法删除的文件和文件夹的程序

[复制链接]
发表于 2010-11-24 20:19:01 | 显示全部楼层 |阅读模式
使用Linux的虚拟主机用户会经常发现通过FTP无法删除网站路径中的一些文件夹和文件,FTP工具软件会提示Permission Denied(没有权限)。出现的原因一般都是这些目录或文件是PHP程序以Apache用户写入的,而一般虚拟主机的用户名下的用户又没有Apache用户组的权限,因此无法删除。我们可以把下面这个PHP代码放到对应的虚拟主机的空间上运行,按提示输入文件夹或文件名即可。(注意这里最好使用相对路径。)


-----------------------------------------------------------------------------------------------------------------------------------

<?php
/*
####警告####
本软件为空间维护工具,使用完毕之后请立即删除本文件
*/
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>空间文件夹/文件删除工具</title>
<style>
body {font-family:"宋体"; font-size:12px;}
imput { border:1px #ccc solid;}
b { color:#FF0000;}
</style>
</head>
<body>
<form action="?action=dirdel" method="post">
删除文件夹,<b>请确定填写无误后再进行删除操作!</b><br>
请输入文件夹路径,多个文件夹请使用";"隔开
<input type="text" name="all_folder" size="50">
<input type="submit" value="删除">
</form>
<br>
<form action="?action=filedel" method="post">
删除文件,<b>请确定填写无误后再进行删除操作!</b><br>
请输入完整的文件路径,多个文件请使用";"隔开
<input type="text" name="all_files" size="50">
<input type="submit" value="删除">
</form>
<br>
<?php
$action = $_GET['action'];

//删除目录操作
if($action=='dirdel') {
$all_folder = $_POST['all_folder'];
if(!empty($all_folder)) {
   //根据分号识别多个文件夹
   $folders = explode(';',$all_folder);
   if(is_array($folders)) {
    foreach($folders as $folder) {
     deldir($folder);
     echo $folder . '删除成功<Br>';
    }
   }
}
}

if($action=='filedel') {
$all_files = $_POST['all_files'];
if(!empty($all_files)) {
   //根据分号识别多个文件
   $files = explode(';',$all_files);
   if(is_array($files)) {
    foreach($files as $file) {
     if(is_file($file)) {
      if(unlink($file)) {
       echo $file . '删除成功<Br>';
      } else {
       echo $file . '无法删除,请检查权限<Br>';
      }
     } else {
      echo $file . '不存在<br>';
     }
    }
   }
}
}



//删除目录及所包含文件函数
function deldir($dir) {
//打开文件目录
$dh = opendir($dir);
//循环读取文件
while ($file = readdir($dh)) {
   if($file != '.' && $file != '..') {
    $fullpath = $dir . '/' . $file;
    //判断是否为目录
    if(!is_dir($fullpath)) {
     //如果不是,删除该文件
     if(!unlink($fullpath)) {
      echo $fullpath . '无法删除,可能是没有权限!<br>';
     }
    } else {
     //如果是目录,递归本身删除下级目录
     deldir($fullpath);
    }
   }
}
//关闭目录
closedir($dh);
//删除目录
if(rmdir($dir)) {
   return true;
} else {
   return false;
}
}
?>
</body>
</html>
发表于 2010-11-25 06:40:05 | 显示全部楼层
感谢分享。
发表于 2010-11-25 07:50:44 | 显示全部楼层
好,很好,我要了!
发表于 2010-11-25 08:31:33 | 显示全部楼层
我靠
发表于 2010-11-25 08:46:15 | 显示全部楼层
可以吗,试试
头像被屏蔽
发表于 2010-11-25 10:20:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-11-25 10:22:45 | 显示全部楼层
感谢分享。
哈哈大侠 发表于 2010-11-25 06:40
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|免费吧论坛

GMT+8, 2025-6-2 10:24 , Processed in 0.075271 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表