dedecms自帶的刪除功能只是刪除記錄后html會自動刪除但是不會刪除文章中的圖片,下面我們介紹兩刪除文章的同時刪除圖片附件方法。
下面這個技巧就是為了實現這個功能,但是不保證100%有效,首先,在"/include"目錄下建立"extend.func.php"文件,然后,將以下內容保存在"extend.func.php"文件中,一共三個函數,接下來打開"/dede/inc/inc_batchup.php"文件.
1:在33行下方加入,也就是如下代碼:
"$arcRow = $dsql->GetOne($arcQuery);"
下方:$arcBodyRow = GetArcBody($aid);
2:在138行下方加入,也就是"return true;"上方:
其它方法參考
打開dede/inc/inc_batchup.php,找到”//刪除數據庫的內容”,在這前面加上如下代碼:
- //刪除縮略圖
- if($arcRow['litpic']!=”"){
- $dsql->ExecuteNoneQuery(“Delete From #@__uploads where url=’$arcRow[litpic]‘”);
- $truedir = GetTruePath($arcRow['siterefer'],$arcRow['sitepath']);
- $litpicfile = $truedir.$arcRow['litpic'];
- @unlink($litpicfile);
- }
- //刪除大圖
- $arcbodyQuery = “Select * from “.$arcRow['addtable'].” where aid=’$aid’”; //Vevb.com
- $arcbodyRow = $dsql->GetOne($arcbodyQuery);
- $imgsrcarray=GetImageSrc($arcbodyRow['body']);
- foreach ($imgsrcarray as $v) {
- if((trim($v)!=”")&&(!eregi(“^http://”,$v))){
- $dsql->ExecuteNoneQuery(“Delete From #@__uploads where url=’$v’”);
- $picfile = $truedir.$v;
- @unlink($picfile);
- }
- }
- //刪除數據庫的內容
第二處,找到如下代碼:
Select #@__archives.ID,#@__archives.title,#@__archives.typeid
改為:
Select #@__archives.ID,#@__archives.title,#@__archives.typeid,#@__archives.litpic
第三處,在文件最后加上一函數,代碼如下:
- //獲得內容中的圖像地址
- function GetImageSrc($body){
- if( !isset($body)) return ”;
- else{
- preg_match_all (“/<(img|IMG)(.*)(src|SRC)=["|'|]{0,}([h|/].*(jpg|JPG|gif|GIF))["|'|s]{0,}/isU”,$body,$out);
- return $out[4];
- }
- }
新聞熱點
疑難解答