对于互联网程序来说,对文字正文内容做关键词内链优化是常态的工作之一。一方面有人手动来处理关键词内链,这个效率太低;一方面通过程序自动添加内链,这样子也省事而且便于管理; 今天我们探讨的就是给自动给文章增加内链的方法。 文章内链: 铁牛 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的内链就有短尾关键词和长尾关键词嵌套一起的错误内链问题。