欢迎您来到贝乐乐科技!
当前身份:游客 [ 登录 | 注册 ]
当前位置:首页>>文章阅读>>其它

PHP如何实现网站关键词自动内链的功能?

来源:中山网站优化 发布时间:2024-03-24 14:27  阅读次数:134次  剩余奖励:480金币

由于我的站点是自己基于thinkphp开发的,之前并没有考虑到关键词自动内链的功能,关键词自动内链的功能是很多网站CMS自带的,比如dedecms、pbootcms、帝国cms等等。虽然之前用的时候感觉没什么,可是真要自己开发还是有一点担心影响网站整体加载速度的。看了网上的一些说明,发现跟我自己想的也差不多,那么暂时忽略到性能的问题,把功能先做出来吧。

1、数据表的准备

大概有以下几个字段

idwordurlrepeataddtime
ID关键词链接网址重复次数添加时间

2、后台的需要

管理页面、添加页面、编辑页面、删除功能

功能开发其实也不复杂,主要是写一个方法,传递过去我们的内容主体,通过循环匹配我们的内链设置,实现自动插入锚文本链接。

PHP实现网站关键词自动内链的方法有两种:

1、加载内容时嵌入。

在读取内容数据时插入锚链接,但是这样可能会牺牲掉用户访问时的加载速度。

2、发布文章时直接把内链嵌入到文章内容字段。

这样也有弊端,当我们换域名了就需要替换掉文章内容字段理的url,有些删除掉的关键词或者是修改了的关键词,也无法兼顾。

两种方法各有弊端,但是鉴于我们网站以后很可能会有比较长时间的运营,内链的关键词也会不断变化,因此我决定采用第一种方式:加载内容时替换的模式。

PHP实现关键词内链插入代码

写一个方法,通用

//关键词自动内链
function autoLinkKeywords($body,$datas){
    
    foreach ($datas as $data){
        $word = $data['link_word'];
        $repeat = $data['link_repeat'];
        $link = '<a href="'.$data['link_url'].'" target="_blank">'.$word.'</a>';
        $body = str_replace($word, $link, $body, $repeat);
    }
    return $body;
}

替换掉文章主体的内容,使用上面的的方法

//关键词内链
//内链集合
$datas= [
    ['link_word'=>'seo优化','link_url'=>'http://www.xalmi.com/','link_repeat'=>3],
    ['link_word'=>'seo','link_url'=>'http://www.xalmi.com/','link_repeat'=>2],
];
//关键词数组排序,优先短词链接,防止长短词重复替换
usort($datas, function($a, $b) {
    return strlen($a['link_word']) - strlen($b['link_word']);
});
$body = autoLinkKeywords($body,$datas);

效果呈现如下:

image.png

本文网址:http://www.xalmi.com/article/74.html转载请注明出处!文章内容为作者原创或者采编,不代表本站立场,如有侵犯,请联系a5b5_su@163.com。