西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > dedecms教程 >

删除Dedecms中遗留的多余图片

时间:2016-08-29 09:51来源:未知 作者:好模板 点击:
网站运营时间长了总会留下一些过时的没用的内容,特别是采集的数据,其中难免有些不需要或者过时的内容,但在删除文章时Dedecms并不能帮我们删除其中的附带的图片,导致遗留的图
网站运营时间长了总会留下一些过时的没用的内容,特别是采集的数据,其中难免有些不需要或者过时的内容,但在删除文章时Dedecms并不能帮我们删除其中的附带的图片,导致遗留的图片在系统中越来越多,变成了系统垃圾,对于空间不足的朋友更是麻烦,如果数据量较小时可以删除手动删除,但当数据量大时就有些力不从心了。   下面是一个网友自己写的一个可以用于批量删除遗留图片的代码.

找到后台路径中的
 
dede/templets/``content_batch_up2.htm
找到下面代码:
 
<input class="np" type="radio" checked="checked" name="action" value="modddpic" /><br />
更正缩图错误<br />
<input class="np" type="radio" name="action" value="delerrdata" /><br />
清空错误的文档数据</td>
修改成:
 
<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_action2php
在最后一个大括号后增加
 
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();
}
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容