Thinkphp文章关键词自动加链接-内链模块

南国老符 南国老符 最后更新于:2022-05-09 浏览:1020

Thinkphp 文章关键词自动加链接-内连模块

首先建立关键词表 命名为 xx_sitelink

表结构 id   link keyword

在前台项目下新建 ReplaceAction.class.php文件,建立替换链接模块 

<?phpclass ReplaceAction extends Action{private $text;public function __toString() {return $this->replace();}//返回替换结果public function content($text){$this->text=$text;}//获取内容给$textprivate function replace(){ //替换函数
   $keywords=$this->keywords();   $pattern =implode(‘|‘,array_keys($keywords));   $pattern ="/((?<!<))($pattern)(?![^<>]*(?:>|<\/a>))/";   return preg_replace_callback($pattern,array($this,callback),$this->text);
}private function callback($matches) { //正则替换回调函数
   global $log; //替换记录,替换过则不在进行相同替换
   if($log[$matches[2]])   return $matches[0];   $log[$matches[2]]=true;   $keywords = $this->keywords();   $link      = $keywords[$matches[2]];   return "<a href=‘$link‘>$matches[2]</a>";
}private function keywords(){ //查找关键词
   $Keywords = M("Sitelink");   $Keywords = $Keywords->where("link<>‘‘")->select();   foreach ($Keywords as $key => $value) {    if (strpos($this->text,$value[keyword])){ //内容中包含关键词存入数组
     $m[$value[keyword]]=$value[link];
    }
   }   krsort($m);//对数组进行逆向排序,最长关键词优先替换
   return $m;
}
}
同项目下调用 $Form = M(‘text‘);$data   = $Form->find($id);if($data) {    $Replace = A("Replace");    $Replace ->content($data[content]); //$data[content]为你的正文字段
    $data[content]=$Replace;
}$this -> assign(‘data‘,$data);?>

点赞 (0)

收藏 (0)
转载请务必注明: 来源:《建站管家》https://www.df81.com/news/365.html

本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。

上一篇: 浅谈ThinkPHP与手机 APP 开发(API 接口开发)

下一篇: CSS渐变背景详细教程

请先登录后,再发表评论 ~ ~
发表评论
评论 (0)

发表帖子
广告位招租( ¥5 / 天 )
点击咨询
最新帖子

南国老符
2025-05-26 16:54
南国老符
2024-09-29 10:29
南国老符
2023-12-15 21:41
广告位招租( ¥5 / 天 )
点击咨询
最近评论

U
user1379
回复:版本号多少?
U
user1379
回复:新版本修复了,下载新版本即可
U
user1379
U
user1304
回复:默认没有这个功能,你可以自行二次开发后期可能会考虑在站群版本上加入此功能及商城功能
Y
yuanis90
回复:后台->语言->全局管理->模型管理->编辑->启用关键词内链即可
Y
yuanis90
回复:后台已经启用了,但是前台产品说明的关分键词还是没有自动链接到,
购买VIP
购买授权
余额充值
发表帖子
客服微信