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

<?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数据库中查出来的,在添加文章的时候没有对关键词做处理,只是在文章详情页面做上述处理。
阅读 2.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题