文章关键词加链接怎么排除关键字互相包含的情况?

发布于 2022-09-11 15:08:30 字数 900 浏览 25 评论 0

<?php
$body = "<p>在过去的一年中,“抖音”通过短视频的形式在人们 
<h1>抖音怎么改名字啊?</h1> 
<img src='https://example.com/test.jpg' title='我想改名字'/></p>";

    $keywords = [
       ['id'=>1,'title'=>'改名字','url'=>'https://www.example.com/gaimingzi.html'],
       ['id'=>2,'title'=>'名字','url'=>'https://www.example.com/mingzi.html'],
       ['id'=>3,'title'=>'短视频','url'=>'https://www.example.com/duanshipin.html'],
    ];
foreach ($keywords as $keyword)
{
   $body = preg_replace('/(>[^<>]*?)(' . $keyword['title'] . ')([^<>]*?<)/', '$1<a href="'. $keyword['url']. '" target="_blank">$2</a>$3', $body,1);
}

echo $body;

在线预览

问题:在上面的DEMO中,"改名字"关键词 包含了 "名字"关键词,怎么以长的关键词为准,只替换长的关键词呢? PS:关键词是从tags数据库中查出来的,在添加文章的时候没有对关键词做处理,只是在文章详情页面做上述处理。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文