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 字符串处理是非常常用的技能,但 ...
随机推荐
- [转载](iPhone开发)Bundle Display Name 改为中文。ap
原文地址:(iPhone开发)Bundle Display Name 改为中文.app显示为中文作者:小新 要先在info的Localizations加入Chinese(zh-Hant) 再進到inf ...
- 【转】C++中继承中的同名成员问题
C++中,子类若有与父类同名的成员变量和成员函数,则同名的成员变量相互独立,但同名的子类成员函数重载父类的同名成员函数.举例如下: #include <iostream> using na ...
- Yii2版本号新特性简单介绍
Yii2 Beta版本号在今年4月份公布.眼下正在改动问题和完好文档中. Yii2要求PHP版本号不低于5.4,主要有例如以下改进: 1)支持PHP框架间协作组制定的PSR-4标准,这简化了文件夹并提 ...
- C# - 集合类 - 集合类型
Stack类 ns:System.Collections 此类模仿了一个简单的先进后出(LIFO)的集合 它实现了ICollection接口 可以通过三种方式创建Stack类对象 Stack stac ...
- php笔记06:http响应中的状态码
首先我们看一个360浏览器中使用开发截图如下: 上面的Status Code: OK (这个就是状态码) 1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所 ...
- Java Interface and Abstraction
本文引用资源申明: http://blog.csdn.net/xw13106209/article/details/6923556 http://www.cnblogs.com/dolphin0520 ...
- Form开发中组件控制的几个常用方法
转自:http://oracleseeker.com/2009/09/01/graphical_component_control_in_oracle_ebs_form/ 在Oracle EBS 的F ...
- webform 转 MVC 飞一般的感觉
前言: 浅谈webform与mvc,让开发变得更加简单,这里主要通过比较webform与mvc的开发方式,以下全属个人看法,不完善的地方可以留言补充. 正文: 废话不多说,直接说工作中经常用到的地方 ...
- 20151215jqueryUI--dialog代码备份
$(function () { $('#search_button').button(); /*$('#reg_a').click(function() { $('#reg').dialog(); } ...
- eclipse Ctrl+1 没反应
今天上午写代码,突然发现Ctrl+1没反应了,顿时无语.昨天还好好的,今天就不行了…… 无奈,只好在网上查了查,据说快捷键冲突的原因比较大. 于是我将Ctrl+1换成了Alt+1.在eclipse中测 ...