织梦删除网站没有被引用的图片

发布时间: 2020-09-10 83 人阅读
在用织梦建站的时候,我们时常会删除一些文章或者上传一些没用的图片,但是有个问题,就是删除文章的同时,文章内的图片还保存在网站空间中,占用了服务器资源。我曾经就有过一次,无用的图片达到八百多MB,要是手动去删,何年何月啊。 
一般来说有二种情况,我们分别来操作:
  • 1、删除文章的同时,删除该文章内的图片,
打开dede/inc/inc_batchup.php
找到
“//删除数据库的内容”
在这前面加上
//删除缩略图
if($arcRow[‘litpic’]!=””){
$dsql->ExecuteNoneQuery(“Delete From dede_uploads where url=’$arcRow[litpic]'”);
$truedir = GetTruePath($arcRow[‘siterefer’],$arcRow[‘sitepath’]);
$litpicfile = $truedir.$arcRow[‘litpic’];
@unlink($litpicfile);
}
//删除大图
$arcbodyQuery = “Select * from “.$arcRow[‘addtable’].” where aid=’$aid'”;
$arcbodyRow = $dsql->GetOne($arcbodyQuery);
$imgsrcarray=GetImageSrc($arcbodyRow[‘body’]);
foreach ($imgsrcarray as $v) {
if((trim($v)!=””)&&(!eregi(“^http://”,$v))){
$dsql->ExecuteNoneQuery(“Delete From dede_uploads where url=’$v'”);
$picfile = $truedir.$v;
@unlink($picfile);
}
}
//删除数据库的内容
再找到
Select dede_archives.ID,dede_archives.title,dede_archives.typeid
改成
Select dede_archives.ID,dede_archives.title,dede_archives.typeid,dede_archives.litpic
在文件最后加上一函数
//获得内容中的图像地址
function GetImageSrc($body){
if( !isset($body)) return ”;
else{
preg_match_all (“/<(img|IMG)(.*)(src|SRC)=[“|’|]{0,}([h|/].*(jpg|JPG|gif|GIF))[“|’|s]{0,}/isU”,$body,$out);
return $out[4];
}
}
  • 2、那就是很早之前删除了很多文章,当时并没有完成第一种情况时的修改, 意思就是明知道空间中有多余的图片。 
找到后台路径中的
dede/templets/content_batch_up.htm
找到下面代码:
<inputclass=”np”type=”radio”checked=”checked”name=”action”value=”modddpic”/><br /> 
更正缩图错误<br /> 
<inputclass=”np”type=”radio”name=”action”value=”delerrdata”/><br /> 
清空错误的文档数据</td>
改成
<inputclass=”np”type=”radio”checked=”checked”name=”action”value=”modddpic”/><br /> 
更正缩图错误<br /> <inputclass=”np”type=”radio”name=”action”value=”delerrdata”/><br /> 
清空错误的文档数据<br /> <inputclass=”np”type=”radio”name=”action”value=”delerrpic”/><br /> 
清空错误的图片</td>
找到
dede/content_batchup_actionphp
在最底部加入下面代码
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();
}
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!vip@mobanstar.com
2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
9. 如遇到加密压缩包,默认解压密码为"www.mobanstar.com",如遇到无法解压的请联系管理员!

模板星 » 织梦删除网站没有被引用的图片

常见问题FAQ

购买的模板是永久使用的嘛?需要授权码嘛?
凡是在模板星购买的模板/主题都是支持永久使用的,无需购买授权码,请用户放心购买使用。
VIP模板提供安装服务嘛?需要收费嘛?
凡在模板星购买的模板/主题均可提供一次免费安装服务(需提供空间及数据库账号),请用户放心购买。

发表评论

售后服务:

  • 售后服务范围 1、商业模板使用范围内问题免费咨询
    2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
    3、单价超过200元的模板免费一次安装,需提供服务器信息。
    付费增值服务 1、提供dedecms模板、WordPress主题模板优化等服务请详询在线客服
    2、承接DedeCMS、 WordPress等系统建站、仿站、开发、定制等服务
    3、服务器环境配置(一般 ¥50-300)
    4、网站中毒处理(需额外付费,500元/次/质保三个月)
    售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
    免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email:vip@mobanstar.com),我们会及时删除,给您带来的不便,我们深表歉意!

目前已经有 132 位会员加入