Heim >CMS-Tutorial >DEDECMS >So löschen Sie Dokumentbilder in Dede

So löschen Sie Dokumentbilder in Dede

藏色散人
藏色散人Original
2019-12-09 10:33:261814Durchsuche

So löschen Sie Dokumentbilder in Dede

Wie lösche ich Dokumentbilder in Dede?

Dede löscht das Dokument und löscht die Bilder im Artikel. Diese Funktion ist sehr wichtig für Freunde, die Bilder-Websites erstellen, insbesondere wenn die gesammelten Artikel gelöscht werden, werden viele nutzlose Bilder generiert. Dieses Programm garantiert nicht, dass 100 % der Bilder im Körper erhalten werden können, aber bei meiner persönlichen Nutzung habe ich keine Probleme festgestellt.

Empfohlenes Lernen: Dreamweaver cms

Erstellen Sie zunächst die Datei „extend.func.php“ im Verzeichnis „/include“. Speichern Sie dann den folgenden Inhalt In der Datei „extend.func.php“ gibt es drei Funktionen:

Der Code lautet wie folgt:

//解析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,"\r\n{$savemsg}"); 
@fclose($fp); 
}

Als nächstes öffnen Sie die Datei „/dede/inc/inc_batchup.php“.

1: Fügen Sie unterhalb von Zeile 33 hinzu, also unterhalb von „$arcRow = $dsql->GetOne($arcQuery);“:

$arcBodyRow = GetArcBody($aid); 🎜>

2: Fügen Sie unterhalb von Zeile 138, also oberhalb von „return true;“ hinzu:

Der Code lautet wie folgt:

//解析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); 
}

An diesem Punkt sind alle Änderungen abgeschlossen. Beim Löschen des Artikels analysiert das Programm die Bildadresse im Textkörper, löscht ihn dann und generiert eine Protokolldatei: del_body_file.txt im Verzeichnis /data/.

Das obige ist der detaillierte Inhalt vonSo löschen Sie Dokumentbilder in Dede. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn