织梦dedecms删除文章时同时删除附件

织梦教程 强烈建议 2024-02-06 13:29 96 0
  织梦dedecms在发布文章的时候难免会附带上传一些附件,这样能让网站内容更加丰富,但是在删除文章的时候也带来了***的难度,之前给大家介绍过,可能在发布文章的时候还不止缩略图和文章中的图片,所以这里给大家介绍怎么删除附件的方法。   1、打开include/extend.func.php文件,在***后添加以下代码:   //解析body数据,获得所有图片的***地址   function GetPicsTruePath($body,$litpic)   {   $delfiles=array();//存储图片地址数据   if(!empty($litpic))   {   $litpicpath=GetTruePath();   $litpicpath .=$litpic;   $delfiles[]=$litpicpath;//缩略图地址   }   preg_match_all("/src="|'|\S|\s]([^ |/|>]*){0,}(([^>]*)\.(gif|jpg|png))/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;   }   //获得文章Body数据   function GetArcBody($aid)   {   global $dsql;   $query="SELECT js_addonarticle.body FROM dede_addonarticle WHERE dede_addonarticle.aid='$aid'";   $row=$dsql->GetOne($query);   if(is_array($row))   return $row;   else   return false;   } //mobantianxia.cn修改于2010.01.28   //写入日志文件   function WriteToDelFiles($msg)//删除文章的时候会通过此函数记录日志   {   if(empty($msg)) $savemsg="未获得消息";   else $savemsg=$msg;   $errorFile=dirname(__FILE__).'/';//删除记录文件   $fp=@fopen($errorFile, 'a');   @fwrite($fp," {$savemsg}");   @fclose($fp);   }   2、打开dede/inc/inc_batchup.php文件   找到:   $arcRow=$dsql->GetOne($arcQuery);   在下边添加:   $arcBodyRow=GetArcBody($aid);   找到:   return TRUE;   在这句话上边添加:   //解析Body中的资源,并删除   $willDelFiles=GetPicsTruePath($arcBodyRow['body'],$arcRow['litpic']);   $nowtime=time();   $executetime=MyDate('Y-m-d H:i:s',$nowtime);//获得执行时间   $msg=" 文章标题:$arcRow[title]";   WriteToDelFiles($msg);   if(!empty($willDelFiles))   {   foreach($willDelFiles as $file)   {   if(file_exists($file) && !is_dir($file))   {   if(unlink($file)) $msg=" 位置:$file 结果:删除成功! 时间:$executetime";   else $msg=" 位置:$file 结果:删除失败! 时间:$executetime";   } //mobantianxia.cn修改于2010.01.28   else $msg=" 位置:$file 结果:文件不存! 时间:$executetime";   WriteToDelFiles($msg);   }//END foreach   }   else   {   $msg=" 未在Body中解析到数据 Body原始数据:$arcBodyRow[body] 时间:$executetime";   WriteToDelFiles($msg);   }

时间:(2024-02-06 13:29:05)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!