建站代码网

热门标签

织梦dedecms删除文章的同时删除缩略图和附件的方法

在网站使用过程中,有时会删除一些文章,而文章中附带的图片和附件会仍然留在服务器中。这样让我们个人站长很纠结啊!太浪费空间了!那么如何在删除文章的同时也删除掉缩略图和附件呢?
打开 dede/inc/inc_batchup.php 文件
找到
//删除数据库的内容
在其前面添加
//删除缩略图  
f($arcRow['litpic']!=""){  
$dsql->ExecuteNoneQuery("Delete From sq_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 sq_uploads where url='$v'");  
$truedir = GetTruePath($arcRow['siterefer'],$arcRow['sitepath']);  
$picfile = $truedir.$v;  
@unlink($picfile);  
}  
}

找到
Select a.ID,a.title,a.typeid,  
修改为
Select a.ID,a.title,a.typeid,a.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];  
}  
}
X