PHP实现删除非站内外部链接实例代码


Posted in PHP onJune 17, 2014

一般在做网站系统的时候,出于优化等因素的考虑需要再添加文章的时候删除掉不是本站的链接,对于这一要求可以通过让PHP处理下文章内容,来达到文章外部链接的自动删除的效果。

本实例代码主要参考织梦CMS内容管理系统的外链删除方法。

/**
 *  删除非站内链接
 *
 * @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("#[\n\r]#", '', $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;
}

PHP 相关文章推荐
php 时间计算问题小结
Jan 04 PHP
php empty函数 使用说明
Aug 10 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
Jun 09 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 #PHP
Thinkphp中Create方法深入探究
Jun 16 #PHP
ThinkPHP中的关联模型注意点
Jun 16 #PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 #PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 #PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 #PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 #PHP
You might like
深入PHP运行环境配置的详解
2013/06/04 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python多线程原理与用法详解
2018/08/20 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
django基础学习之send_mail功能
2019/08/07 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
大学生咖啡店创业计划书
2014/01/21 职场文书
《争吵》教学反思
2014/02/15 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
幼师求职自荐信
2015/03/26 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python