• 技术文章 >php教程 >php手册

    PHP文章关键词相似短尾长尾内链替换方法介绍

    2016-06-06 19:43:26原创1223

    对于互联网程序来说,对文字正文内容做关键词内链优化是常态的工作之一。一方面有人手动来处理关键词内链,这个效率太低;一方面通过程序自动添加内链,这样子也省事而且便于管理; 今天我们探讨的就是给自动给文章增加内链的方法。 文章内链: 铁牛 http://

    对于互联网程序来说,对文字正文内容做关键词内链优化是常态的工作之一。一方面有人手动来处理关键词内链,这个效率太低;一方面通过程序自动添加内链,这样子也省事而且便于管理;

    今天我们探讨的就是给自动给文章增加内链的方法。

    文章内链:

    铁牛 http://www.111.com

    李铁牛 http://www.222.com

    李铁牛是铁牛 http://www.333.com

    李铁牛是铁牛山的铁牛 http://www.444.com

    文字内链存储的数组

    $keywordArr=array (
        0 => array ('title' => '李铁牛是铁牛山的铁牛','url' => 'http://www.444.com',),
        1 => array ('title' => '李铁牛是铁牛山','url' => 'http://www.333.com',),
        2 => array ('title' => '李铁牛','url' => 'http://www.222.com',),
        3 => array ('title' => '铁牛','url' => 'http://www.111.com',),);

    文章正文:

    这是我下面对内链关键词的举例哈。铁牛爱美女,李铁牛喜欢有情调的生活。铁牛也是牛,铁牛喜欢喝酒喜欢妹妹喜欢打拳健身,李铁牛也是牛,铁牛山的铁牛是李铁牛,李铁牛是铁牛山的铁牛。牛牛牛。
    

    替换过的正文html

    这是我下面对内链关键词的举例哈。<a href="http://www.111.com" target="_blank"><strong class="keylink">铁牛strong>a>爱美女,<a href="http://www.222.com" target="_blank"><strong class="keylink">李铁牛strong>a>喜欢有情调的生活。<a href="http://www.111.com" target="_blank"><strong class="keylink">铁牛strong>a>也是牛,铁牛喜欢喝酒喜欢妹妹喜欢打拳健身,<a href="http://www.222.com" target="_blank"><strong class="keylink">李铁牛strong>a>也是牛,铁牛山的铁牛是李铁牛,<a href="http://www.444.com" target="_blank"><strong class="keylink">李铁牛是铁牛山的铁牛strong>a>。牛牛牛。

    那么这种长尾短尾想结合的关键词我们用常规的替换处理是不行的,需要用到正则的匹配处理。处理函数见下

    //content 文字正文内容
     function keylink($content) {
        //$keywordArr 代表我们的关键词字典
        $keywordArr=array (
        0 => array ('title' => '李铁牛是铁牛山的铁牛','url' => 'http://www.444.com',),
        1 => array ('title' => '李铁牛是铁牛山','url' => 'http://www.333.com',),
        2 => array ('title' => '李铁牛','url' => 'http://www.222.com',),
        3 => array ('title' => '铁牛','url' => 'http://www.111.com',),);
        if(!$keywordArr) return $content;
        $data = $content;
        foreach($keywordArr as $k=>$v) {
            $quote = str_replace(array("'", '-'), array("\'", '\-'), preg_quote($v['title']));
            $data = preg_replace('\'(?!((<.*?)|($quote.')(?!(([^<>]*?)>)|([^>]*?)|([^>]*?))\'si', ''.$v['title'].'', $data, 1);//数字1代表在正则中出现的替换频率
            if($data == '') $data = $content;
        }
        return $data;
    }

      如果处理的不好,会出现内链嵌套内链的错误悲剧。错误悲剧出处:大家可以尝试用下DEDECMS,DEDECMS的内链就有短尾关键词和长尾关键词嵌套一起的错误内链问题。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:WDCP从php5.2升级到5.3的办法,以及升级过程中iconv错误的处理 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 用PHP实现小型站点广告管理(修正版)• php实现refresh刷新页面批量导入数据的方法• 聊天室php&mysql(二)• PHP+redis实现添加处理投票的方法• Yii2如何批量添加数据,Yii2批量添加数据
    1/1

    PHP中文网