文章关键词加链接怎么排除关键字互相包含的情况?
<?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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论