PHP文章关键词相似短尾长尾内链替换方法介绍
对于互联网程序来说,对文字正文内容做关键词内链优化是常态的工作之一。一方面有人手动来处理关键词内链,这个效率太低;一方面通过程序自动添加内链,这样子也省事而且便于管理;
今天我们探讨的就是给自动给文章增加内链的方法。
文章内链:
铁牛 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文章关键词相似短尾长尾内链替换方法介绍的更多相关文章
- SEO内链操作的技巧大家又知道多少
关于一个优质的网站而言,一套优质的内部优化链接体系是必不可少的,简略来说杰出的内链体系能让网站页面之前彼此传递权重,协助搜索引擎快速辨认网站内容的中心,可是SEO内链操作的技巧我们又知道多少?下面齐鲁 ...
- 免插件为WordPress文章中标签添加内链
给文章标签添加内链,意思就是说,如果你文章中出现了和标签一样的文字,那么这个文字就会自动成为标签链接,你点击这个链接就会查看到所有含有该标签的文章,这个能方便用户浏览,据说还利于SEO.下面说说方法: ...
- 关于SEO的一些见解---关键词的选取布局以及内外链的建设
前言 SEO是英文 Search EngineOptimiation的缩写,中文翻译为"搜索引擎优化"简单地说, SEO就是从搜索引擎上获得流量的技术 . 搜索引掌优化的主 ...
- dede内链怎么优化,Dedecms内部链接优化技巧
dede内链怎么优化,dedecms内部链接优化技巧 使用dedecms的过程中发现,可以通过dedecms的文档关键词维护功能.发表文章时候的关键词添加功能(也可以自动获取)以及核心设置里面的是否使 ...
- SEO网站内链匹配工具
最近在弄一个网站,想体验一下SEO方面的工作. 虽然自己是从事.NET方面工作的,但时间有限,所以用了DEDECMS作为网站的程序. 而SEO里面最重要的一项就是内链.但DEDECMS没有直接的内链匹 ...
- 利用js查找页面中的内链,外链
起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊??????? 后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取a ...
- SEO 外链 内链 的定义
外链 外链就是指从别的网站导入到自己网站的链接.导入链接对于网站优化来说是非常重要的一个过程.导入链接的质量(即导入链接所在页面的权重)直接决定了我们的网站在搜索引擎中的权重. 外链是互联网的血液,是 ...
- zabbix告警邮件、短信发送错误快速排查方法
zabbix告警邮件.短信发送错误快速排查方法 背景 zabbix告警邮件.短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢? 在我看来,最快的角度就是判断这个告警邮 ...
- Python 的内置字符串方法(收藏专用)
Python 的内置字符串方法(收藏专用) method 字符串 string python3.x python 4.7k 次阅读 · 读完需要 44 分钟 5 字符串处理是非常常用的技能,但 ...
随机推荐
- URAL 1994 The Emperor's plan 求组合数 大数用log+exp处理
URAL 1994 The Emperor's plan 求组合数 大数用log #include<functional> #include<algorithm> #inclu ...
- Dom4j写XML
package com; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.I ...
- Android将应用log信息保存文件
相信大家在做应用调试的时候,不可能时时通过USB线连着电脑去查看log信息,所以,将应用的log信息保存到手机本地就很有必要了,有助我们从这些log信息中提取有用的部分,以解决一些bug,下面我把网上 ...
- [Javascript] Drawing Paths - Curves and Arcs
window.onload = function() { var canvas = document.getElementById("canvas"), context = can ...
- yum 命令提示语法错误
1. 问题信息 SyntaxError: invalid syntax 2. 问题原因 升级python版本导致 3. 解决方法 vi /usr/bin/yum 将#!/usr/bin/python ...
- 当前位置: 银光首页 > WPF > WPF学习教程 > WPF: ShowDialog() 切换到其他应用窗口后,再切换回来无法让子窗口总在最上方
转自http://www.silverlightchina.net/html/study/WPF/2012/0723/17608.html
- oracle Form Builer:FIND_FORM Built-in
Description Searches the list of forms and returns a form module ID when it finds a valid form with ...
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- Asp.Net MVC是否针对每次请求都重新创建一个控制器实例
一.Asp.Net MVC是否针对每次请求都重新创建一个控制器实例 默认情况下,答案是确定的. ControllerBuilder类 ControllerBuilder.Current用户获取默认的控 ...
- 软件工程——UML简介
UML概述: UML是对OMT(对象建模技术).Booth(Booch方法)以及OOSE(面向对象的软件工程)等记号系统实施统一工作后得到的一种记号系统. UML(Unified Modeling L ...