//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.'" target="_blank" style="color: #ff6a00;">'.$matches[1].'</a>'; }, $newstext, 1 // 这里的1表示只替换一次 ); } } return $newstext; }