解决帝国CMS设置关键词与内容图片链接冲突问题

本文分享了一种解决关键词自动替换文章中超链接的问题的方法。通过修改functions.php文件中的ReplaceKey函数,可以避免关键词替换破坏原有的超链接,确保文章内链接正常工作。
部署运行你感兴趣的模型镜像

今天遇到了这个问题,关键词把我文章内超链接的都给改了,也找了很多解决方案都不管用,不管是把
‘/’. r [ k e y n a m e ] . ′ / i ′ 替 换 成 ′ / ′ . r[keyname].'/i'替换成'/'. r[keyname]./i/.r[keyname].’(?!([<]*>)|([<]*<\ a="">))/i’也好,还是其他方案,都不行。

不过还是找到了解决方案,以下是解决方法,已测试!

在e/class/functions.php中,查找代码:“ function ReplaceKey(newstext, newstext,newstext,classid=0)” 或 “//替换关键字”(有时打开为utf-8时中文显示为乱码)

把这一大段大部分(即:“//替换关键字”部分)替换为以下代码:

//替换关键字
function ReplaceKey($newstext,$classid=0){
	global $empire,$dbtbpre,$public_r,$class_r;
	if(empty($newstext)||$class_r[$classid]['keycid']==-1)
	{return $newstext;}
	$where='';
	if(!empty($class_r[$classid]['keycid']))
	{
		$where=" where cid='".$class_r[$classid]['keycid']."'";
	}
	$newstext=stripslashes($newstext);
	preg_match_all('/<a[^>](.*)a>|<img[^>](.*)>/isU',stripslashes($newstext),$rs);
	if($rs[0]){
		foreach($rs[0] as $k=>$v){
			$newstext=str_replace($v,"[!--{$k}--]",$newstext); 
		}
	}
	$sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey".$where);
	while($r=$empire->fetch($sql))
	{
		if(STR_IREPLACE)
		{
			$newstext=empty($public_r[repkeynum])?str_ireplace($r[keyname],'<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
		}
		else
		{
			$newstext=empty($public_r[repkeynum])?str_replace($r[keyname],'<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
		}
	}
	if($rs[0]){
		foreach($rs[0] as $k=>$v){
			$newstext=str_replace("[!--{$k}--]",$v,$newstext); 
		}
	}
	return $newstext;
}

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值