码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2014-09-17 21:40:22      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   ar   strong   for   div   

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

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

文章内链:

铁牛 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(‘\‘(?!((<.*?)|(<a.*?)|(<strong.*?)))(‘.$quote.‘)(?!(([^<>]*?)>)|([^>]*?</a>)|([^>]*?</strong>))\‘si‘, ‘<a href="‘.$v[‘url‘].‘" target="_blank"><strong class="keylink">‘.$v[‘title‘].‘</strong></a>‘, $data, 1);//数字1代表在正则中出现的替换频率
        if($data == ‘‘) $data = $content;
    }
    return $data;
}

 

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

 

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

标签:style   blog   http   color   io   ar   strong   for   div   

原文地址:http://www.cnblogs.com/keleyu/p/3978028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!