织梦dedecms会员发布文章内容自动过滤外部链接的方法

简介: 织梦会员中心发布文章自动过滤外部外部链接,保留本站站内链接。这个织梦默认后台本身带有这样的功能的,只是会员模块里没有而已。

织梦会员中心发布文章自动过滤外部外部链接,保留本站站内链接。这个织梦默认后台本身带有这样的功能的,只是会员模块里没有而已。

 

我们可以把功能嫁接到会员模块里去使用,实现自动过滤外部链接

实现教程:

 

打开 /member/inc/inc_archives_functions.php 在文件的最下面插入:

 

/**

*  删除非站内链接

*

* @access    public

* @param     string  $body  内容

* @param     array  $allow_urls  允许的超链接

* @return    string

*/

function Replace_Links( &$body, $allow_urls=array()  )

{

   $host_rule = join(‘|’, $allow_urls);

   $host_rule = preg_replace(“#[nr]#”, ”, $host_rule);

   $host_rule = str_replace(‘.’, “\.”, $host_rule);

   $host_rule = str_replace(‘/’, “\/”, $host_rule);

   $arr = ”;

   preg_match_all(“#<a([^>]*)>(.*)</a>#iU”, $body, $arr);

   if( is_array($arr[0]) )

   {

       $rparr = array();

       $tgarr = array();

       foreach($arr[0] as $i=>$v)

       {

           if( $host_rule != ” && preg_match(‘#’.$host_rule.’#i’, $arr[1][$i]) )

           {

               continue;

           } else {

               $rparr[] = $v;

               $tgarr[] = $arr[2][$i];

           }

       }

       if( !empty($rparr) )

       {

           $body = str_replace($rparr, $tgarr, $body);

       }

   }

   $arr = $rparr = $tgarr = ”;

   return $body;

}

 

继续在这个文件中找到,大概在329行:

 

//自动摘要

 

在它上面加入:

 

//删除非站内链接

$allow_urls = array($_SERVER[‘HTTP_HOST’]);

// 读取允许的超链接设置

if(file_exists(DEDEDATA.”/admin/allowurl.txt”))

{

$allow_urls = array_merge($allow_urls, file(DEDEDATA.”/admin/allowurl.txt”));

}

$body = Replace_Links($body, $allow_urls);

相关文章
|
Serverless
Serverless 应用引擎中,sae2.0绑定域名出问题了,提交了之后没显示出来,然后再添加就提示已存在,是必现,为什么?
Serverless 应用引擎中,sae2.0绑定域名出问题了,提交了之后没显示出来,然后再添加就提示已存在,是必现,为什么?
322 1
|
SQL 存储 Oracle
C# Web控件与数据感应之 Control 类
C# Web控件与数据感应之 Control 类
|
设计模式 算法 容器
从零开始学设计模式(十三):访问者模式(Visitor Pattern)
前面的几篇文章分别介绍了创建型设计模式和结构型设计模式,接下来的几篇文章将介绍行为型设计模式
254 0
从零开始学设计模式(十三):访问者模式(Visitor Pattern)
|
Java Maven Spring
HibernateValidator校验框架
HibernateValidator校验框架
176 0
HibernateValidator校验框架
|
Kubernetes 安全 网络协议
|
编解码 前端开发 Java
移动端webapp开发必备知识
<p>原文地址:http://www.qianduan.net/mobile-webapp-develop-essential-knowledge.html</p> <p></p> <p style="margin-top:0px; margin-bottom:24px; font-family:微软雅黑,Helvetica,'Heiti SC',sans-serif; font-si
1924 0
|
4天前
|
云安全 人工智能 自然语言处理
|
8天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
821 23