Dedecms5.7删除文章自动删除文章里面的图片和缩略图教程

织梦教程 强烈建议 2024-02-06 13:42 98 0

  ***近本站在删除一些原来的垃圾文章时发现,虽然我删除了织梦dedecms中的文章文字内容,但是在附件中的文章里面的图片并不会自动删除,这样就造成了服务器空间的极度浪费,

  图片占的空间都不小,经过织梦dedecms站长测试,通过修改部分PHP代码,即可实现,在删除文章的同时自动删除图片,附件等内容。

  方法如下:

  打开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];

  }

  }

  特别提示:大家***先在本地修改测试后,在传到网站,防止网站出问题。



时间:(2024-02-06 13:42:25)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!