织梦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);

相关文章
|
1月前
|
搜索推荐
一文教会你:如何在搜索过程中过滤CSDN的相关文章,一次设置永久过滤
这篇文章教你如何在浏览器搜索设置中添加自定义搜索引擎,通过在搜索查询中加入"-csdn"参数来过滤掉CSDN的搜索结果,从而提高搜索结果的质量。
一文教会你:如何在搜索过程中过滤CSDN的相关文章,一次设置永久过滤
|
4月前
|
小程序 开发者
【经验分享】支付宝小程序如何获取外部链接携带的参数
【经验分享】支付宝小程序如何获取外部链接携带的参数
258 7
DedeCMS织梦文档关键词维护中设置自动关键词重复嵌套出错的修改方法
织梦 DedeCMS 后台的关键词维护默认的情况是字数少的词优先于字数多的词,比如我们有两个这样的词:锚文本、定向锚文本,第二个词包含了第一个词,在文章中如果出现“定向锚文本”这个词,默认情况下只会给锚文本两个字添加关键词超链接,而不是整个词,那么我们怎么样才能实现字数多的词优先于字数少的词呢?
|
移动开发
微信h5扫码接口范例:多个扫码框支持的办法,通过引入一个参数来区分及使用localStorage保证之前扫到的数据不丢失
微信h5扫码接口范例:多个扫码框支持的办法,通过引入一个参数来区分及使用localStorage保证之前扫到的数据不丢失
104 0
|
存储 机器人 API
typecho博客增加评论过滤插件/违禁词拦截
typecho博客增加评论过滤插件/违禁词拦截
328 0
|
数据采集 搜索推荐 JavaScript
批量泛链接二级提交工具 无限制提交SEO新视野
或许有的站长还不知道这个东西有什么作用,在这儿我来给咱们简略的介绍一下。
|
PHP 数据库
织梦DEDECMS自动内链一个关键字对应多个链接随机调用的设置方法
利用dedecsm织梦自动内链的时候,可能会有一个关键字对应多个网站,随机调用网址的需求,比如(织梦自动内链)这个关键词一些文章内链链接到网站的首页,一些链接到文章页,但是织梦中原带的功能,一个关键词只能加一个网址,网上找了很多办法也没有找到可用的,还好米米素材网懂一点点php,哪就自己动手吧。下面是织梦自动内链一个关键字对应多个链接,随机调用这些链接的解决办法。
|
JSON JavaScript 数据格式
get 方式提交新闻防止新闻被覆盖掉|学习笔记
快速学习 get 方式提交新闻防止新闻被覆盖掉
158 0
get 方式提交新闻防止新闻被覆盖掉|学习笔记
|
JavaScript 开发者
get方式提交新闻防止新闻被覆盖掉(补充说明)|学习笔记
快速学习 get 方式提交新闻防止新闻被覆盖掉(补充说明)
115 0
get方式提交新闻防止新闻被覆盖掉(补充说明)|学习笔记
智能顾问、博客编辑等多页面标准功能触发Adblock Plus规则
一次在编辑博客的时候,提交前的滑块验证无法通过,总是提示:网络不给力,请点击刷新,或提交反馈 (00)。然而提交反馈之后根本没有人理,这服务态度也是让人呵呵了。 相关截图: 智能顾问,你每发送一条信息,就会ABP那里的数字在增加;滑块验证也是一样。
1355 0