5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:
性别:秘密
最后登录:2007-04-12
http://cd-ren.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/03/01 | 【HACK】节省网站空间--删除多余的附件
类别(网络风)
|
评论
(0)
|
阅读(94)
|
发表于 01:07
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=$_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 $value)
echo "$value<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;
}
?>
0
评论
Comments
日志分类
首页
[178]
日记/收藏
[19]
我的作品
[11]
flash相关
[13]
图片相关
[17]
动画相关
[16]
风采文章
[16]
网络风
[75]
音乐/影视
[11]