• 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("#[ ]#", '', $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;
    }

  • 相关阅读:
    设计模式之工厂模式
    Java内存区域与内存溢出异常
    Spark环境搭建
    Android获取蓝牙地址
    Intent和BroadcastReceiver
    Fragment初探
    Acticity的生命周期和启动模式
    Maven依赖,去哪儿找
    Spring-BeanDefinition
    Spring-BeanFactory体系介绍
  • 原文地址:https://www.cnblogs.com/ZDPPU/p/7149231.html
Copyright © 2020-2023  润新知