织梦Dedecms删除文档同时文章中的图片的方法

首先,在/include目录下建立extend.func.php文件. 然后,将以下内容保存在extend.func.php文件中,一共三个函数: 复制代码代码如下: //解析body数据,获得所有图片的绝对地址 function GetPicsTruePath($body,$litpic) { $delfiles = array();//存储图片地址数
首先,在"/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:%60dede_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," {$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 = " 文章标题:$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"; 
else $msg = " 位置:$file 结果:文件不存! 时间:$executetime"; 
WriteToDelFiles($msg); 
}//END foreach 
else 
$msg = " 未在Body中解析到数据 Body原始数据:$arcBodyRow[body] 时间:$executetime"; 
WriteToDelFiles($msg); 
 
至此,全部修改完成,删除文章时,程序会分析Body中的图片地址,然后删除.并在/data/目录下,产生日志记录文件:del_body_file.txt
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

织梦DEDECMS 栏目文章文章命名规则修改, 每次添加栏目的时候 都要改文章命名规则,十分麻烦, 修改下面这个地方就可以一改永亦,织梦模板网为您解答 找到\include\common.inc.php 搜索 $cfg_df_namerule 把: $cfg_df_namerule = {typedir}/{Y}/{M}{D}/{aid
当我们通过{dede:arclist keyword=关键词}来调用文章列表时,你会发现只在其中一个栏目里生效,在其他栏目,仍然显示上一次的关键词。 原因是由于arclist的缓存导致的。 只需修改/include/taglib/arclist.lib.php文件,大概在384行: $taghash = md5(seriali
我们在使用织梦dedecms数据库内容替换时候,经常遇到 安全码 显示的无法识别或者不清晰,这个安全码的位置是在核心 - 批量维护 - 数据库内容替换,如果识别不了,这个页面还没有改变验证码的地方,只能重新刷新页面,如果我们不想要这个安全码的话,要怎么操
今天一个客户在安装织梦dedecms时候,安装完成后登录后台就出现Safe Alert Request Error step 2,常用dedecms的朋友都知道,这是织梦的安全机制,在程序觉得有sql注入等攻击时候,会有这种提示。 1、起初我以为是文件没传全,让这个朋友重新传了文件上去安
dede织梦搜索伪静态,伪静态设置成功后,访问URL地址效果如下: 搜索页 http://www.baidu.com/search/织梦.html 搜索分页 http://www.baidu.com/search/织梦-2.html 本教程也适用于手机端。 开启伪静态: 后台-系统参数-核心设置-开启伪静态 后台-系统参数-
在使用 织梦模板 建站中,随机数作为一个偶尔使用到的参数,在具体使用中虽然用的少,但是今天跟版网小编给大家介绍下,大家可以参考下: 实现随机数的调用可以使用下面的js: 方法一:js代码 Math.rondom()*(m-n)+n; //生成在n到m之间的整数 但如果要用随机