[[IT知识]] 打造高效文章内链系统,优化SEO与用户体验

[复制链接]
查看: 39|回复: 0
发表于 2025-2-2 09:35:01 | 显示全部楼层 | 阅读模式
易博V9下载

打造高效文章内链系统,优化SEO与用户体验

最近做了一个关于给文章内容添加内链的功能,就是将文章中我们认为是关键词的词替换为带有链接的词,如果仅仅是将文章内容中的关键词替换为带有链接的关键词那也就没什么好说的了,但产品部门希望的是文章中出现的关键词替换个数不能超过5个,同时要求长关键词优先,比如"www.phpernote.com"和"phpernote.com"两个关键词,那么"www.phpernote.com"拥有优先被匹配的权利,同时对于一篇文章中出现了多个同样的关键词,只需要替换一次就行。这也许更符合SEO,同时也更能提高网站的用户体验度,但对于程序来说,可就一下子将程序搞复杂了不少!下面就分享一下本人做这个网站文章内链系统的做法。

首先新建了一个数据库用来保存我们输入的关键词以及关键词对应的链接。这里只是用来保存,为了能让前台读取的数据更快一些,最后还是将该表生成了一个数组缓存,数组 key 为关键词,数组 key 对应为关键词的链接。在生成数组的缓存过程中同时也对长关键词优先也做了考虑,就是对这个数组按照值的长短进行了一个排序,值字符串比较长的排在前面,这里面的排序主要是借鉴了冒泡排序算法。

冒泡排序算法中有下面这么一个判断:

if($array[$j] >; $array[$j+1])

只需简单的将其对应修改为:

if(strlen($array[$j]) >; strlen($array[$j+1]))

ok了,上面就将我们的关键词和关键词链接处理成了一个按关键词从长到短的小巧缓存数组了。

对于如何将 php 数组缓存成文本类型的数组,请参考本站文章。

ok,材料准备齐全了,下面该实现如何进行关键词的替换了。其实很简单,此次实现的方法是对关键词进行一个循环,依次从数组的第一个值在内容中匹配,匹配到了就相应的将计数器加一,到计速器大于5的时候就退出不再进行匹配了。当然这个过程中还涉及到了对相同的关键词只匹配一次的算法,对于这个,可参考本站文章。

下面贴出一下这部分的关键性代码:

  1. $i=0;
  2. foreach($keywords_array as $k=>$v){
  3. if($i>4){
  4. break;
  5. }
  6. if(false!==strpos($content,$k)){
  7. $replace='<a href="'.$v.'" target="_blank">'.$k.'</a>';
  8. str_replace_once($k,$replace,$content);
  9. $i++;
  10. }
  11. }
复制代码

至此,一个文章内链系统已经就基本完成了。但在实际测试过程中发现还有个bug就是当短关键词被长关键词包含了时候,会导致出现重复替换的现象,比如"www.phpernote.com"这个关键词被替换后,假设第二个关键词是"phpernote.com",这个时候就会将"phpernote.com"又进行了一次替换。本人想了良久都没有办法解决,研究了一下织梦,貌似也存在这个问题。经过不断的尝试,最终的解决办法是在替换关键词的时候不仅仅是对关键词加个链接,加链接的同时也将对应的关键词经过一种类似加密的算法将关键词替换成为一个唯一的字符串,在内容匹配完后再通过相应的解密算法将关键词又替换回来,呵呵,这个东西最后越高越复杂。其实这个bug也不算什么大bug,要求不高的话不需要这一步的处理。

易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表