DeDeBIZ过滤文章内容里面的网址和JS/CSS等

snh102 By snh102 at 2024-07-13 • 暂不可见      举报

玩采集的,不小心采集到链接、网址、JS等。没关系,下面,看我教你把它们都过滤了。

方法一:后台搜索

搜索文章内容修改:打开 /admin/content_list.php 看到第 137 行代码

$whereSql .= " AND ( CONCAT(arc.id,arc.title,arc.writer) LIKE '%$keyword%') ";

改为

$whereSql = " left join `#@__addonarticle` on arc.id=`#@__addonarticle`.aid ".$whereSql." And (CONCAT(`#@__addonarticle`.body,arc.title,arc.id,arc.writer,arc.keywords,arc.description) like '%$keyword%') ";

其中的3处 #@__addonarticle 是查询文章表的,若你有多个文章表就手动改改再查。

后台 - 文档管理 - 直接在输入标题框里面搜索,比如

搜 href= 就是链接啦!搜 script 就是JS啦!这是直接搜索文章内容啦。

方法二:标签过滤

什么?很卡?手动修改麻烦?那直接使用标签过滤就行了。

打开 /system/extend.func.php 翻到最底部,在 ?> 的上面加个方法

function bodybot($content)
{
    //过滤CSS样式、JS脚本
	$content = preg_replace('/<style\b[^>]*>.*?<\/style>/si', '', $content);
    $content = preg_replace('/<script\b[^>]*>.*?<\/script>/si', '', $content);
    $content = preg_replace('/<link.*?>|<script.*?>|<style.*?>.*?<\/style>/si', '', $content);
	//过滤 href 标签
	preg_match_all('#href=([\"|\'])(.*)([\"|\'])#iU', $content, $gehref);
	if(!is_null($gehref)) {
		foreach($gehref[2] as $href) {
			$content = str_replace('href="'.$href.'"','', $content);
		}
	 }
    return $content;
}

调用标签:打开 /theme/dedebiz/article_article.htm 就是你的文章内容模版

{dede:field.body function='bodybot(@me)'/}

完成,全站更新,标签会被过滤了。

方法三:入库过滤

入库前过滤,更加的省心。打开 /admin/inc/inc_archives_functions.php 搜索

$body = addslashes($body);

在它下面加入

$body = preg_replace('/<style\b[^>]*>.*?<\/style>/si', '', $body);
$body = preg_replace('/<script\b[^>]*>.*?<\/script>/si', '', $body);
$body = preg_replace('/<link.*?>|<script.*?>|<style.*?>.*?<\/style>/si', '', $body);

改完后,发布文档、修改文档时,会过滤CSS、JS了。

温馨提示

内容由用户共同创建和维护,并不代表织梦爱好者论坛立场!
建议您独自对内容进行评估,核实并咨询相关的专业人士!

登录后方可回帖

Loading...