文章内链的实现方法

飘逸的风14年前 (2012-11-19)程序6299

在很多的时候,我在浏览其他的网站发现文章中一写关键词都被加上了链接链向对应的页面,我就在想他们是怎么实现这个功能的?为什么这么做,这么做有什么好处?

 

当然有什么好处一看便知,无论是从访问者来说还是从网站放来说都是有益而无害的。对应访问者这样增加关联性阅读的便利,无需去找相关内容的入口,从网站方来说,这不仅增加了网站与访问者之间的粘性,同时也增加了站内的优化,百度等爬虫可以通过这些链接信息知道各个页面间的关联性及关系,在SEO上能得到有益于网站的好处。既然对应网站有好处何乐而不为呢?

 

很多页面都有几个关联链接,难道是网站编辑手动添加的链接吗?当然有的是编辑加的链接,但大部分是通过程序自动加的链接。

 

说了一堆的废话,下面说说要实现的效果:

1、同一篇文章中同一关键词出现多次的时候只给第一次出现的加链接。

2、一个关键词包含在另一个关键词中时,则只在包含的关键词加加链接,原因很简单,不能让一个链接包含在另一个链接中对吧

 

下面说说我初步实现的方法:

1、用程序批量生成关键词和链接对应的库或手动添加关键词和链接库(库可以用数组的格式以文件的形式存储)

2、在view页面输出内容时执行查找替换的操作。上代码吧

01 <?php
02 header("Content-Type:text/html; charset=utf-8");
03 $arr array(
04     "私募基金" => "https://www.licai.so/Simu/",
05     "私募" => "https://www.licai.so/Simu/",
06     "信托" => "https://www.licai.so/Trust",
07     "信托产品" => "https://www.licai.so/Trust/product",
08     "私募产品" => "https://www.licai.so/Simu/productlist/",
09     "理财搜" => "https://www.licai.so/"
10 );
11 ksort($arr);  //对关键词排序,短词排在前面
12 $str "这是我写一个关于私募基金和信托的测试字符串,我要从这个字符串中给相关的关键词产品、私募、信托加链接";
13 echo "原始字符串:" $str "<br/><br/>";
14 //遍历关键词库
15 foreach ($arr as $k => $v) {
16     //查找第一次出现的关键词并替换加上对应的链接
17     $str= preg_replace('/'.$k.'/','<a href="'.$v.'" target="_blank">' $k '</a>',$str,1);
18 }
19 echo $str;
20 ?>
原始字符串是:

1 这是我写一个关于私募基金和信托的测试字符串,我要从这个字符串中给相关的关键词产品、私募、信托加链接
替换完后是:
1 这是我写一个关于<a href="https://www.licai.so/Simu/" target="_blank">私募</a>基金和<a href="https://www.licai.so/Trust"target="_blank">信托</a>的测试字符串,我要从这个字符串中给相关的关键词产品、私募、信托加链接
文章来源:https://blog.51edm.org/post/72

相关文章

PHP中正则表达式的几则使用技巧归总

PHP正则表达式主要用于字符串的模式分割、匹配、查找及替换操作。使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑。 我的PHP正则入门,是起源于网上的一篇...

PHP如何设置页面最大执行过期时间

一般在上传较大的附件时,超过30秒会出现网页过期的错误页面,如何处理这个问题呢?以下是处理方法: 1、如果是自己的服务器,可以全局配置:在php.ini 中设置,默认为30秒 max_execut...

如何在 SAE 下操作本地IO

因为SAE平台安全性的考虑,限制了用户对于本地IO的使用,但这样对于一些传统的PHP项目,也许带来了很多不便,因为它们都或多或少的有对本地IO的操作,像Smarty的编译模板和文件上传程序。为了解决这...

thinkphp 使用U方法自动生成URL超链接

ThinkPHP U方法 U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。 由于 ThinkPHP 支持各种不同的 URL...

PHP5+引进$GLOBALS延迟初始化概念

今天在使用$GLOBALS['_SERVER']来替代$_SERVER来访问相关的环境变量,总是会报“_SERVER undefined”错误。如下用例:    用例1: &n...

10个你可能从未用过的PHP函数

1. sys_getloadavg() sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。