织梦Dede 删除文档同时文章中的图片的方法
//解析body数据,获得所有图片的***地址
functionGetPicsTruePath($body,$litpi
更多精彩就在: 51免费论文网|www.jxszl.com
c)
{
$delfiles=array();//存储图片地址数据
if(!empty($litpic))
{
$litpicpath=GetTruePath();
$litpicpath.=$litpic;
$delfiles[]=$litpicpath;//缩略图地址
}
preg_match_all("/src=["||S|s]([^title="liehuo.net"|/|>]*){0,}(([^>]*).(gif|jpg|png))/isU",$body,$tmpdata);
$picspath=array_unique($tmpdata[II]);//body中所有图片的地址
foreach($picspathas$tmppath)
{
$path=GetTruePath();//获得***路径
$picpath=preg_replace("/[a-zA-z]+://[^|/|s]*/",,$tmppath);//去掉网址部分
$path.=$picpath;
$delfiles[]=$path;//保存处理后的数据
}
return$delfiles;
}
//获得文章Body数据
functionGetArcBody($aid)
{
global$dsql;
$query="SELECT[url=mailto:dede_addonarticle.body]dede_addonarticle.body[/url]FROM[url=mailto:%VI0dede_addonarticle]`dede_addonarticle[/url]`WHERE[url=mailto:dede_addonarticle.aid]dede_addonarticle.aid[/url]=$aid";
$row=$dsql->GetOne($query);
if(is_array($row))
return$row;
else
returnfalse;
}
//写入日志文件
functionWriteToDelFiles($msg)//删除文章的时候会通过此函数记录日志
{
if(empty($msg))$savemsg="未获得消息";
else$savemsg=$msg;
$errorFile=dirname(_FILE_)./../data/del_body_file.txt;//删除记录文件
$fp=@fopen($errorFile,a);
@fwrite($fp," {$savemsg}");
@fclose($fp);
}
接下来打开"/dede/inc/inc_batchup.php"文件.
I.:在IIIIII行下方加入,也就是"$arcRow=$dsql->GetOne($arcQuery);"下方:
$arcBodyRow=GetArcBody($aid);
II:在I.IIIVIII行下方加入,也就是"returntrue;"上方:
//解析Body中的资源,并删除
$willDelFiles=GetPicsTruePath($arcBodyRow[body],$arcRow[litpic]);
$nowtime=time();
$executetime=MyDate(Y-m-dH:i:s,$nowtime);//获得执行时间
$msg=" 文章标题:$arcRow[title]";
WriteToDelFiles($msg);
if(!empty($willDelFiles))
{
foreach($willDelFilesas$file)
{
if(file_exists($file)&&!is_dir($file))
{
if(unlink($file))$msg=" 位置:$file 结果:删除成功! 时间:$executetime";
else$msg=" 位置:$file 结果:删除失败! 时间:$executetime";
}
else$msg=" 位置:$file 结果:文件不存! 时间:$executetime";
WriteToDelFiles($msg);
}//ENDforeach
}
else
{
$msg=" 未在Body中解析到数据 Body原始数据:$arcBodyRow[body] 时间:$executetime";
WriteToDelFiles($msg);
}
原文链接:http://www.jxszl.com/biancheng/dedecms/74945.html
热门阅读