CD-Ren by『光碟奇人录』

我的日历
最新评论
友情链接
访问计数

+------------------------------------------------------------------------------------------------------+

【HACK】节省网站空间--删除多余的附件

   网络风2005-3-1 1:7
www.freediscuz.net/bbs/viewthread.php?tid=33266&fpage=1
插件名称:删除多余的附件
适用版本:2.5
作  者:jims
数据升级:不需要
修改文件:不需要
修改模板: 不需要
最后发表日期:2005-2-23
插件功能简介: 针对discuz2.5F批量删除时不删附件的BUG, [将以前没删的附件删除]
演示或技术支持网站:见附件图

使用方法:把这段代码保存为一个php文件,文件名任意(如killatt.php),然后上传到 [论坛根目录] ,运行这个文件即可。为了安全,使用前请先备份数据
希望对你有用。
<?php
/*
针对discuz2.5F批量删除时不删附件的BUG,将多余的附件删除
使用方法:把这段代码保存为一个php文件,上传到论坛根目录执行即可。
为了安全,使用前请先备份数据
http://www.16xia.com
jims
*/

ob_start();
session_start();
$pertask=600;//每次处理的文件数,你可以根据情况更改

include './include/common.php';
//身份检查
if($adminid!=1)
exit('对不起,只有管理员才可以执行此操作!');

//利用session保存已删文件列表
if(!session_is_registered("delfiles")){
session_register("delfiles");
$delfiles=array();
}

if ($begin==NULL) $begin=0;
$end=$begin+$pertask;
//遍历目录,取得文件列表
$array=list_dir($attachdir);
if ($end>count($array)) $end=count($array);

//=================================================================
for ($i=$begin; $i<$end; $i++){
$search=str_replace("$attachdir/","",$array[$i]);
//搜索文件是否在数据库中存在
$result=$db->query("SELECT attachment FROM $table_attachments where attachment=\"$search\"");
if (!$attach = $db->fetch_array($result)){
@unlink($array[$i]);//删除文件。你可先注释掉这句,不执行删除操作,只显示多余的附件
$delfiles[]=$search;//保留已删文件名,以作输出
}
}
//=================================================================

if ($end<count($array)){
echo "已处理文件数:".$end."<br>";
$nextlink=

【HACK】节省网站空间--删除多余的附件

   网络风2005-3-1 1:7
{logcontent}
标签集:TAGS:
回复Comments()点击Count()
SERVER['PHP_SELF']."?begin=".$end;
echo "<meta http-equiv=\"refresh\" content=\"1;URL=".$nextlink."\">";
echo "<a href=\"".$nextlink."\">程序将自动继续或单击这里...</a>";
}
else {
$count=count($delfiles);
if ($count>0){
echo "找到多余附件共".$count."个,已删除,被删文件如下:<hr>";
foreach($delfiles as {logcontent}#118alue)
echo "{logcontent}#118alue<br>";
}
else
echo "没找到多余的附件";
session_destroy();
}
?>



<?php
//遍历目录
function list_dir($dirname)
{
static $result_array=array(); //静态数组,保存函数返回值。
$handle=opendir($dirname);
while ($file = readdir($handle))
{
if($file=='.'||$file=='..'||$file=='index.htm')
continue;
if(is_dir("$dirname/$file"))
list_dir("$dirname/$file"); //如果是目录,递归调用。
else
$result_array[]="$dirname/$file";
}
closedir($handle);
return $result_array;
}
?>









标签集:TAGS:
回复Comments()点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}

+------------------------------------------------------------------------------------------------------+


   Designed by ArPan     Powered by 5DBlog