4414站长论坛某坛友提问:有没有大神帮忙解决下,帝国cms 文章内容关键字禁止H标签替换,如H2标签作为文章小标题,也自动添加了关键词超链接,不想H标签生成链接,如何禁止排除,谢谢。
这是一个4414站长论坛坐沙发的回答如下:
打开帝国CMS根目录下的 e/class/functions.php 文件。使用文本编辑器的搜索功能,查找 /'.$r[keyname].'/i。将找到的 /'.$r[keyname].'/i 替换为以下正则表达式:
'/'.$r[keyname].'(?!([^<]*>|\s+h1\b[^>]*>[^>]*<\/\s*h1\b[^>]*>|\s+img\b[^>]*alt\s*=\s*["\']|\s+img\b[^>]*title\s*=\s*["\']))/i'
不过作为小编来说是不赞成这样的做法的!毕竟为了这么小小特殊要求把系统文件都修改了。小编还是喜欢用自定义函数解决,/e/class/userfun.php 文件增加个自定义函数
<?php
// 自定义函数,移除H标签中的链接
function removeHLink($content) {
// 使用正则表达式匹配H标签中的链接并替换为纯文本
$pattern = '/<(h2|h3|h5)><a class="infotextkey" href="([^"]+)" target="_blank">([^<]+)<\/a><\/(h2|h3|h5)>/i';
$replacement = '<$1>$3</$1>';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
?>
那么内容模板里面的内容字段就改为以下自定义函数调用了哦
<?=removeHLink($navinfor['newstext'])?>