我爱学习网首页 | 设为首页 | 收藏本站 | 网站地图 您好,欢迎光临我爱学习网
我爱学习网

当前位置:首页 > 编程开发 > dedecms织梦 >

DEDE5.7 删除文章的同时删除缩略图和内容中图片的方法

时间:2017-01-16 21:25 来源:未知 | 作者:我爱学习网 | 本文已影响
一、打开文件“/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;
}

(责任编辑:我爱学习网)


分享到: 更多