打造最全的CMS类教程聚合!
首先添加两个函数
- /*根据文档id获取文档的body部分*/functiongetArcBody($arcid){global$dsql;if(emptyempty($arcid))return;$body='';$query="selectarc.*,ch.addtable,ch.fieldsetfrom`dede_arctiny`asarcleftjoin`dede_channeltype`aschonarc.channel=ch.idwherearc.id=$arcid";$row=$dsql->GetOne($query);if(emptyempty($row))return;$addtable=$row['addtable'];$fieldset=$row['fieldset'];include_once(DEDEINC.'./dedetag.class.php');$dtp=newDedeTagParse();$dtp->SetNameSpace('field','<','>');$dtp->LoadSource($fieldset);if(is_array($dtp->CTags)){foreach($dtp->CTagsas$tid=>$tag){if($tag->GetAtt('type')=='htmltext'){$body=$tag->GetName();break;}}}if(!emptyempty($body)){$query="select$bodyfrom`$addtable`whereaid=$arcid";$row=$dsql->GetOne($query);$body=$row[$body];return$body;}return;}/*解析文档内容的本地图片图片*/functionget_img_from_body($body){$result=array();if(emptyempty($body))return$result;preg_match_all('/\ssrc=([\&;|\&;])([^\1]*?)\.(gif|jpg|jpeg|png)\1/',$body,$res);if(!emptyempty($res[2])){foreach($res[2]as$k=>$v){$result[]=$v.'.'.$res[3][$k];}}return$result;}
把这段代码贴到后面,接着打开后台(假设使用默认的dede作为后台)文件,在第22行添加代码如下:
- $body=getArcBody($aid);
接在在第139行,就是在
- returntrue;
上面一行加上下面的代码
- if($body){$img_arr=get_img_from_body($body);if(!emptyempty($img_arr)){foreach($img_arras$v){$img_file=GetTruePath().str_replace($GLOBALS['cfg_basehost'],'',$v);if(file_exists($img_file)&&!is_dir($img_file))@unlink($img_file);}}}
这样就可以实现删除文档的时候删除字段为“”类型的中的本地图片了。
无论才能知识多么卓着,如果缺乏热情,则无异纸上画饼充饥,无补于事。