首先,在"/include"目录下建立"extend.func.php"文件.
然后,将以下内容保存在"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]([^ title="liehuo.net"
|\/|>]*){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
[url=mailto:dede_addonarticle.body]dede_addonarticle.body[/url]
FROM [url=mailto:`dede_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

return false;

}

//写入日志文件

function WriteToDelFiles($msg)//删除文章的时候会通过此函数记录日志

{

if(empty($msg)) $savemsg="未获得消息";

else $savemsg = $msg;

$errorFile =
dirname(__FILE__).'/../data/del_body_file.txt';//删除记录文件

$fp = @fopen($errorFile, 'a');

@fwrite($fp,"\r\n{$savemsg}");

@fclose($fp);

}



接下来打开"/dede/inc/inc_batchup.php"文件。

1:在33行下方加入,也就是"$arcRow = $dsql->GetOne($arcQuery);"下方:

$arcBodyRow = GetArcBody($aid);

2:在138行下方加入,也就是"return true;"上方:





//解析Body中的资源,并删除

$willDelFiles =
GetPicsTruePath($arcBodyRow['body'],$arcRow['litpic']);

$nowtime = time();

$executetime = MyDate('Y-m-d H:i:s',$nowtime);//获得执行时间

$msg = "\r\n文章标题:$arcRow[title]";

WriteToDelFiles($msg);

if(!empty($willDelFiles))

{

foreach($willDelFiles as $file)

{

if(file_exists($file) && !is_dir($file))

{

if(unlink($file)) $msg =
"\r\n位置:$file\r\n结果:删除成功!\r\n时间:$executetime";

else $msg = "\r\n位置:$file\r\n结果:删除失败!\r\n时间:$executetime";

}

else $msg = "\r\n位置:$file\r\n结果:文件不存!\r\n时间:$executetime";

WriteToDelFiles($msg);

}//END foreach

}

else

{

$msg =
"\r\n未在Body中解析到数据\r\nBody原始数据:$arcBodyRow[body]\r\n时间:$executetime";

WriteToDelFiles($msg);

}



至此,全部修改完成,删除文章时,程序会分析Body中的图片地址,然后删除.并在/data/目录下,产生日志记录文件:del_body_file.txt。

跟版网-专业织梦模板下载平台,转载请注明出处:http://www.genban.org/news/dedecms-7438.html

最新文章

  1. git免密码pull,push
  2. 第四十课:CSS3 transition详解
  3. Struts2 中result type属性说明
  4. UI学习笔记---第十二天UITabBarController
  5. c# 类型初始值设定项引发异常
  6. QListWidget与QTableWidget的使用以及样式设置
  7. jQuery照片伸缩效应,这不是一个简单的图像缩放,它不影响其它元素的布局
  8. Mysql-左连接查询条件失效的解决办法
  9. 在linux服务器上发布web应用的完整过程
  10. union表关联模糊查询servlet,action方法
  11. laravel5.4 表单提交
  12. PHP跨域访问
  13. 【嵌入式】FS2410移植U-Boot-1.1.6
  14. /var/spool/postfix/maildrop 出现大量文件原因和解决办法
  15. jQuery 事件函数传参异常identifier starts immediately after numeric literal
  16. MySQL根据表字段生成C#Model语句
  17. java 数字金额转换中文金额
  18. 函数式编程(1)-高阶变成(3)-sorted
  19. FastStone Capture 8.4 注册码
  20. 白话SpringCloud | 第九章:路由网关(Zuul)的使用

热门文章

  1. 关于HTTP协议头域详解
  2. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
  3. java 信号量Semaphore
  4. JavaScript Array 对象方法 以及 如何区分javascript中的toString()、toLocaleString()、valueOf()方法
  5. Maven的下载、安装与环境配置
  6. K:二叉树的非递归遍历
  7. Ubuntu16.04 IDE: 用Vim逐步打造一个IDE
  8. jq选择器汇总
  9. 我的Python学习笔记(一):==和is
  10. Mysql:执行source sql脚本时,出现:error 2