飘仙建站论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 221|回复: 0

[分享] 批量删除Dedecms遗留无用的图片代码

[复制链接] |关注本帖
     

4312

主题

1万

帖子

40万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
407436

魅力奖活力之星热心会员

发表于 2018-2-12 14:14:38 | 显示全部楼层 |阅读模式
站运营时间长了总会留下一些过时的没用的内容,特别是采集的数据,其中难免有些不需要或者过时的内容,但在删除文章时Dedecms并不能帮我们删除其中的附带的图片,导致遗留的图片在系统中越来越多,变成了系统垃圾,对于空间不足的朋友更是麻烦,如果数据量较小时可以删除手动删除,但当数据量大时就有些力不从心了。   下面是一个网友自己写的一个可以用于批量删除遗留图片的代码。
     一、找到dede\templets\content_batch_up2.htm     找到下面代码:     
  1. <input class="np" type="radio" checked="checked" name="action" value="modddpic" /><br />     更正缩图错误<br />     <input class="np" type="radio" name="action" value="delerrdata" /><br />     清空错误的文档数据</td>   
复制代码
  修改成:     
  1. <input class="np" type="radio" checked="checked" name="action" value="modddpic" /><br />     更正缩图错误<br />     <input class="np" type="radio" name="action" value="delerrdata" /><br />     清空错误的文档数据<br />     <input class="np" type="radio" name="action" value="delerrpic" /><br />     清空错误的图片</td>
复制代码

     二、dede\content_batchup_action2.php     在最后一个大括号后增加     
  1. elseif($action == 'delerrpic')     {     $file_a=array();     function rFile($p){     global $file_a;     $handle=opendir($p);     $dir_a=array();     while ($file = readdir($handle)) {     if($file!="." && $file!=".."){     $tmp=$p."/".$file;     if(is_dir($tmp)){     $dir_a[count($dir_a)]=$tmp;     }elseif(is_file($tmp)){     $file_a[count($file_a)]=$tmp;     }     }     }     closedir($handle);     foreach($dir_a as $v){     rFile($v);     }     }     rFile("../uploads/allimg");//调用,要遍历的目录     foreach($file_a as $v){     $temp=substr($v,2);     $query = "select count(*) from dede_addonarticle where body like '%".$temp."%'";     $dsql->setquery($query);     $dsql->execute();     while($row = $dsql->getarray())     {     if($row[0]==0){     if(substr($v, -8, 4)!="_lit" && substr($v, -10, 5)!="index"){     if(file_exists($v))     unlink($v);     }     }     }     }     $dsql->Close();     ShowMsg("成功清除错误图片!","javascript:;");     exit();     }
复制代码

     就可以了,系统没有使用多线程处理的功能,当遗留图片较多时需要较长时间的等待,程序不删除缩略图和uploads/allimg目录下的index.html,如果uploads/allimg文件夹下有多余图片请修改程序后再用。希望对各位有所帮助。

1.新手起步教程(含注册会员,注册域名,购买空间和网站备案教程)
2.教程看10遍不如动手做一遍! 多动手试试,在出错中解决问题.这样子效率最高!中国稳速
3.看帖回帖是种美德.您的一个帖子能给楼主很大的发帖动力!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|西部数码代理|飘仙建站论坛 ( 豫ICP备08106178号-2 )

GMT+8, 2019-2-17 20:34 , Processed in 0.171875 second(s), 41 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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