//TAG自动关联当前关键词
function tihuanmuban($id) {
global $empire, $dbtbpre, $public_r, $class_r;
// 获取新闻的基本信息和内容
$tagr = $empire->fetch1("select id, classid from {$dbtbpre}ecms_news where id='$id' limit 1");
$f = $empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_1 where id='$id' limit 1");
$newstext = $f['newstext'];
// 获取新闻的标签ID
$sql = $empire->query("select tagid from {$dbtbpre}enewstagsdata where id=".$tagr['id']." and classid=".$tagr['classid']."");
// 用于存储已处理的标签ID,确保不重复替换
$processedTagIds = [];
while ($td = $empire->fetch($sql)) {
$tr = $empire->fetch1("select * from {$dbtbpre}enewstags where tagid=".$td['tagid']." limit 1");
if ($tr['tagid'] && !in_array($tr['tagid'], $processedTagIds)) {
$processedTagIds[] = $tr['tagid']; // 标记为已处理
$tagurl = dp_itagLink($td['tagid']);
// 使用回调函数和正则表达式实现只替换一次
$newstext = preg_replace_callback(
'/('.preg_quote($tr['tagname'], '/').')(?!([^<]*>)|([^<]*<\/a>))/i',
function ($matches) use ($tagurl) {
return '<a href="'.$tagurl.'" rel="external nofollow" target="_blank" style="color: #ff6a00;">'.$matches[1].'</a>';
},
$newstext,
1 // 这里的1表示只替换一次
);
}
}
return $newstext;
}