dedecms5.7 删除文章同时删除缩略图和内容中图片

 
一、打开文件“/dede/inc/inc_batchup.php”,搜索“删除数据库记录”,在前面添加以下代码:
 
//删除缩略图
if($arcRow['litpic']!=""){
$dsql->ExecuteNoneQuery("Delete From `dede_uploads` where url='$arcRow[litpic]'");
$litpicfile = $cfg_basedir.$arcRow['litpic'];
if(@file_exists($litpicfile)) @unlink($litpicfile);
}
//删除大图
$arcbodyQuery = "Select * from `$addtable` where aid='$aid'";
$arcbodyRow = $dsql->GetOne($arcbodyQuery);
$imgsrcarray=GetImageSrc($arcbodyRow['body']);
foreach ($imgsrcarray as $v) {
if((trim($v)!="")){
$dsql->ExecuteNoneQuery("Delete From `dede_uploads` where url='$v'");
$picfile = $v;
@unlink($picfile);
}
}

2、在最后加入代码:
 
//获得内容中的图像地址
function GetImageSrc($body){
$delfiles = array();//存储图片地址数据
preg_match_all("/src=[\"|'|\S|\s]([^ |\/|>]*){0,}(([^>]*)\.(gif|jpg|png|bmp))/isU",$body,$tmpdata);
$picspath = array_unique($tmpdata[2]);//body中所有图片的地址

foreach($picspath as $tmppath){
$path = GetTruePath();//获得绝对路径
$picpath = preg_replace("/[a-zA-z]+:\/\/[^ |\/|\s]*/",'',$tmppath);//去掉网址部分
$path .=$picpath;
$delfiles[] = $path;//保存处理后的数据
}
return $delfiles;
}

 

0 个评论

要回复文章请先登录注册