找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1586|回复: 0

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

[复制链接]
发表于 2018-3-16 08:43:02 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
最近本站在删除一些原来的垃圾文章时发现,虽然我删除了dedecms中的文章文字内容,但是在附件中的文章里面的图片并不会自动删除,这样就造成了服务器空间的极度浪费,图片占的空间都不小,经过站长学院测试,通过修改部分PHP代码,即可实现,在删除文章的同时自动删除图片,附件等内容。方法如下:
打开dede/inc/inc_batchup.php找到"//删除数据库的内容"
在这前面加上
//删除缩略图
  1. if($arcRow['litpic']!=""){
  2. $dsql->ExecuteNoneQuery("Delete From dede_uploads where url='$arcRow[litpic]'");
  3. $truedir = GetTruePath($arcRow['siterefer'],$arcRow['sitepath']);
  4. $litpicfile = $truedir.$arcRow['litpic'];
  5. @unlink($litpicfile);
  6. }
复制代码

//删除大图
  1. $arcbodyQuery = "Select * from ".$arcRow['addtable']." where aid='$aid'";
  2. $arcbodyRow = $dsql->GetOne($arcbodyQuery);
  3. $imgsrcarray=GetImageSrc($arcbodyRow['body']);
  4. foreach ($imgsrcarray as $v) {
  5. if((trim($v)!="")&&(!eregi("^http://",$v))){
  6. $dsql->ExecuteNoneQuery("Delete From dede_uploads where url='$v'");
  7. $picfile = $truedir.$v;
  8. @unlink($picfile);
  9. }
  10. }
复制代码

//删除数据库的内容
第二处:找到
  1. Select dede_archives.ID,dede_archives.title,dede_archives.typeid
复制代码

改为:
  1. 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. }
复制代码

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

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-1-11 00:06 , Processed in 0.047967 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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