织梦删除服务器中多余的没有被调用的图片

站长新闻 12-11 浏览 319

我们的网站时常会删除一些文章,但是有个问题,就是删除文章的同时,文章内的图片还保存在网站空间中,占用了服务器资源。
一般来说有二种情况,我们分别来操作:
1、删除文章的同时,删除该文章内的图片,
打开dede/inc/inc_batchup.php
第一处找到
"//删除数据库的内容"
在这前面加上

01 //删除缩略图 02 if($arcRow['litpic']!=""){ 03 $dsql->ExecuteNoneQuery("Delete From dede_uploads where url='$arcRow[litpic]'"); 04 $truedir = GetTruePath($arcRow['siterefer'],$arcRow['sitepath']); 05 $litpicfile = $truedir.$arcRow['litpic']; 06 @unlink($litpicfile); 07 } 08 //删除大图 09 $arcbodyQuery = "Select * from ".$arcRow['addtable']." where aid='$aid'"; 10 $arcbodyRow = $dsql->GetOne($arcbodyQuery); 11 $imgsrcarray=GetImageSrc($arcbodyRow['body']); 12 foreach ($imgsrcarray as $v) { 13 if((trim($v)!="")&&(!eregi("^http://",$v))){ 14 $dsql->ExecuteNoneQuery("Delete From dede_uploads where url='$v'"); 15 $picfile = $truedir.$v; 16 @unlink($picfile); 17 } 18 } 19 //删除数据库的内容

第二处:找到
Select dede_archives.ID,dede_archives.title,dede_archives.typeid
改为:
Select dede_archives.ID,dede_archives.title,dede_archives.typeid,dede_archives.litpic
第三处:
在文件最后加上一函数

1 //获得内容中的图像地址 2 function GetImageSrc($body){ 3 if( !isset($body)) return ''; 4 else{ 5 preg_match_all ("/<(img|IMG)(.*)(src|SRC)=[\"|'|]{0,}([h|\/].*(jpg|JPG|gif|GIF))[\"|'|\s]{0,}/isU",$body,$out); 6 return $out[4]; 7 } 8 }

2、那就是很早之前删除了很多文章,当时并没有完成第一种情况时的修改, 意思就是明知道空间中有多余的图片。
找到后台路径中的
dede/templets/content_batch_up.htm
找到下面代码:


更正缩图错误



清空错误的文档数据
修改成:

1
2   3 更正缩图错误

4   5 清空错误的文档数据

6   7 清空错误的图片

找到
dede/content_batchup_actionphp
在最后一个大括号后增加

01 elseif($action == 'delerrpic') 02 { 03 $file_a=array(); 04 function rFile($p){ 05   global $file_a; 06   $handle=opendir($p); 07   $dir_a=array(); 08   while ($file = readdir($handle)) { 09    if($file!="." && $file!=".."){ 10     $tmp=$p."/".$file; 11     if(is_dir($tmp)){ 12      $dir_a[count($dir_a)]=$tmp; 13     }elseif(is_file($tmp)){ 14      $file_a[count($file_a)]=$tmp; 15     } 16    } 17   } 18   closedir($handle); 19   foreach($dir_a as $v){ 20    rFile($v); 21   } 22 } 23 rFile("../uploads/allimg");//调用,要遍历的目录 24 foreach($file_a as $v){ 25   $temp=substr($v,2); 26   $query = "select count(*) from dede_addonarticle where body like '%".$temp."%'"; 27   $dsql->setquery($query); 28   $dsql->execute(); 29   while($row = $dsql->getarray()) 30   { 31    if($row[0]==0){ 32     if(substr($v, -8, 4)!="_lit" && substr($v, -10, 5)!="index"){ 33      if(file_exists($v)) 34       unlink($v); 35     } 36    } 37   } 38 } 39 $dsql->Close(); 40 ShowMsg("成功清除错误图片!","javascript:;"); 41 exit(); 标签:
本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

热门推荐