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 相关文章推荐
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
php图片的二进制转换实现方法
Dec 15 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
php文件读取方法实例分析
2015/06/20 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
python绘制已知点的坐标的直线实例
2019/07/04 Python
Python3常见函数range()用法详解
2019/12/30 Python
python打包多类型文件的操作方法
2020/09/21 Python
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
市场部专员岗位职责
2013/11/30 职场文书
网上书店创业计划书
2014/01/12 职场文书
公司活动邀请函
2014/01/24 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
党员作风建设整改方案
2014/10/27 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
学校教学工作总结2015
2015/05/19 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
详细总结Python常见的安全问题
2021/05/21 Python