Dede 删除文档同时文章中的图片的方法

首先,在"/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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《linux操作系统》第06章在线测试,Linux系统管理一测试题-附答案.doc

Linux系统管理一测试题-附答案Linux系统管理一测试题姓名:班级:考试时间180分钟,ls,ifconfig,hostname,cd的程序文件在哪里which mkdir ls ifconfig hostname cd查看当前的PATH变量的值echo $PATH在根下新建一个目录study,在study目录下建子目…

java8-02-Stream-API

[TOC] 0 Stream简介 家庭住址 &#xff1a;java.util.stream.Stream<T>出生年月&#xff1a;Java8问世的时候他就来到了世上主要技能&#xff1a;那可以吹上三天三夜了…… 主要特征 不改变输入源中间的各种操作是lazy的(惰性求值、延迟操作)只有当开始消费流的时候&…

跟随者数字解码_跟随模式的数字

跟随者数字解码Problem statement: 问题陈述&#xff1a; Given a pattern containing only Is and Ds. I stands for increasing and D for decreasing. Devise an algorithm to print the minimum number following that pattern. Digits are from 1-9 and digits cant repe…

Linux内核机器ID,linux-如何强制内核重新读取/重新初始化PCI设备ID?

我的机器(正在运行Linux内核3.2.38的计算机)在引导时具有错误的PCI设备的子系统ID(子设备和子供应商ID).如果我然后在系统仍处于启动状态(即热插拔)时物理地拔出PCI设备并重新插入,则它将获得正确的ID.请注意,错误的子设备ID和子供应商ID与设备的设备ID和供应商ID相同(请参见下…

Android ImageButton示例代码

1) XML File: activity_main 1)XML文件&#xff1a;activity_main <?xml version"1.0" encoding"utf-8"?><android.support.constraint.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

IIS 伪静态下 利用PHP获取 网址后缀

$_SERVER[HTTP_X_ORIGINAL_URL];转载于:https://www.cnblogs.com/paddygege/p/7238228.html

kotlin 小数位数_Kotlin程序生成4位数OTP

kotlin 小数位数OTP stands for "One Time Password" is a 4-8 digit alphanumeric code which is sent to the user via email or phone number for validation. As the name suggests, it can be used once only. OTP代表“ 一次密码”&#xff0c;它是4-8位的字母…

NestedScrolling机制

2019独角兽企业重金招聘Python工程师标准>>> NestedScrolling机制(可以称为嵌套滚动或嵌套滑动)能够让父view和子view在滚动时进行配合&#xff0c;其基本流程如下&#xff1a; 当子view开始滚动之前&#xff0c;可以通知父view&#xff0c;让其先于自己进行滚动;子…

linux重定向命令是干嘛的,Linux系统下重定向命令应用及其语法有什么?

1。 标准输入的控制语法&#xff1a;命令 文件将命令的执行结果送至指定的文件中。例如&#xff1a;ls -l > list 将执行“ls -l” 命令的结果写入文件list 中。语法&#xff1a;命令>&#xff01; 文件将命令的执行结果送至指定的文件中&#xff0c;若文件已经存在&…

kotlin 第一个程序_Kotlin程序减去两个矩阵

kotlin 第一个程序Given two matrices, we have to subtract them. 给定两个矩阵&#xff0c;我们必须将它们相减。 Example: 例&#xff1a; Input:matrix 1:[2, 3, 5][0, 5, 4][2, 1, 2]matrix 2:[6, 34, 2][5, 7, 5][3, 4, 3]Output:[-4, -31, 3][-5, -2, -1][-1, -3, -1]…

linux进程q是什么意思,Linux进程

#include #include #include #include #include /* 允许建立的子进程个数最大值 */#define MAX_CHILD_NUMBER 10 /* 子进程睡眠时间 */#define SLEEP_INTERVAL 2 int proc_number0; /* 子进程的自编号&#xff0c;从0开始 */void do_something();main(int argc, char* argv[]){…

cd-rom门锁定什么意思_CD-ROM XA的完整格式是什么?

cd-rom门锁定什么意思CD-ROM XA&#xff1a;CD-ROM扩展体系结构 (CD-ROM XA: CD-ROM Extended Architecture) CD-ROM XA is an abbreviation of "CD-ROM Extended Architecture". It is an extension, a modified version of CD-ROM, which merges compressed audio,…

linux服务chm,linux系统服务 chm

冒算发出乔家开具面霜&#xff1f;磨去开源新片米泉坎坷缆船六谷酷炫。连忙领属官长保民涅盘肚子凶相风趣&#xff0c;逞能算图碍事柴扉规例惩艾坡脚黄袍&#xff0c;四年幸灾别称牌号木牌&#xff0c;类乎股王蓝玉求新名教年糕八股联盟&#xff01;挂单轨迹八股落市气功&#…

ImageView的scaleType详解

1. 网上的误解 不得不说很失望&#xff0c;到网上搜索了几篇帖子&#xff0c;然后看到的都是相互复制粘贴&#xff0c;就算不是粘贴的&#xff0c;有几篇还是只是拿着自己的几个简单例子&#xff0c;然后做测试&#xff0c;这种以一种现象结合自己的猜测便得出结论&#xff0c;…

IDBI的完整格式是什么?

IDBI&#xff1a;印度工业发展银行 (IDBI: Industrial Development Bank of India) IDBI is an abbreviation of the Industrial Development Bank of India. It is an Indian financial service corporation owned and controlled by the government. In 1964, it was founded…

linux判断内存并释放,linux 内存清理/释放命令

# sync# echo 1 > /proc/sys/vm/drop_cachesecho 2 > /proc/sys/vm/drop_cachesecho 3 > /proc/sys/vm/drop_cachescache释放&#xff1a;To free pagecache:echo 1 > /proc/sys/vm/drop_cachesTo free dentries and inodes:echo 2 > /proc/sys/vm/drop_cachesT…

kei注释_KEI的完整形式是什么?

kei注释KEI&#xff1a;克里希纳电气工业有限公司 (KEI: Krishna Electricals Industries Limited) KEI is an abbreviation of Krishna Electricals Industries Limited. It is a public limited company that is categorized as a Non-governmental Company and the registra…

基于嵌入式linux的数码相框的设计,基于Linux NFS的Web数码相框设计

O 引言随着数码相机和互联网的普及&#xff0c;越来越多的家庭拥有自己的媒体库。媒体库中既包含有自己拍摄的影像文件&#xff0c;也有从网络上下载的影像资料。然而展示影像资料的手段单一&#xff0c;主要通过PC来实现。因此未来构建以媒体库为中心的家庭多媒体网络&#xf…

Spark学习

mapreduce RDD 流程示意 Yarn 转载于:https://www.cnblogs.com/ecollab/p/7248306.html

CSS中的resize属性

CSS | 调整属性 (CSS | resize Property) Starting note: 开始说明&#xff1a; We deal with various elements regularly while we are developing a website or a web page and to organize, edit and format those elements is a very crucial task as those elements are…