Maison > Tutoriel CMS > DEDECMS > Comment supprimer des images de documents dans Dede

Comment supprimer des images de documents dans Dede

藏色散人
Libérer: 2019-12-09 10:33:26
original
1823 Les gens l'ont consulté

Comment supprimer des images de documents dans Dede

Comment supprimer des images de documents dans Dede ?

Dede supprime le document et supprime les images dans l'article. Cette fonction est très importante pour les amis qui créent des sites Web d'images, surtout lors de la suppression des articles collectés, cela générera beaucoup d'images inutiles. Le programme ne garantit pas que 100% des images du corps pourront être obtenues, mais lors de mon utilisation personnelle, je n'ai trouvé aucun problème.

Apprentissage recommandé : Dreamweaver cms

Tout d'abord, créez le fichier "extend.func.php" dans le répertoire "/include". Ensuite, enregistrez le contenu suivant dans. Il y a trois fonctions dans le fichier "extend.func.php" :

Le code est le suivant :

//解析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); 
}
Copier après la connexion

Ouvrez ensuite le fichier "/dede/inc/inc_batchup.php".

1 : Ajoutez sous la ligne 33, c'est-à-dire sous "$arcRow = $dsql->GetOne($arcQuery);":

$arcBodyRow = GetArcBody($aid); 🎜>

2 : Ajoutez en dessous de la ligne 138, c'est-à-dire au-dessus de "return true;" :

Le code est le suivant :

//解析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); 
}
Copier après la connexion
À ce stade, toutes les modifications sont terminées. Lors de la suppression de l'article, le programme analysera l'adresse de l'image dans le corps, puis la supprimera et générera un fichier journal : del_body_file.txt dans le répertoire /data/.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal