• 技术文章 >后端开发 >PHP问题

    php去除外链的方法

    藏色散人藏色散人2020-10-10 09:07:30原创46

    php去除外链的方法:首先打开相应的PHP文件;然后通过定义的“Replace_Links”方法处理下文章内容;最后完成文章外部链接的自动删除即可。

    推荐:《PHP视频教程

    一般在做网站系统的时候,出于优化等因素的考虑需要再添加文章的时候删除掉不是本站的链接,对于这一要求可以通过让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中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php 外链
    上一篇:php项目自动化部署如何实现 下一篇:php跳转失败怎么办
    第13期线上培训班

    相关文章推荐

    • 现在外链要怎么做• wordpress怎么使用外链图片作为文章缩略图• php如何去除外链• mysql中外链接是什么意思?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网