卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1829本站已运行4109

帝国cms 关键词替换把图片alt和超链接替换的解决办法

帝国cms 关键词替换是一个很实用的站内自动内链的好工具,但是有很鸡肋,为什么呢?
比如 你内容里面的图片alt和title里面有关键词和关键词替换的一直,这个关键词替换就会把alt和title的给替换了,这样就导致你的图片不能显示,页面也给破坏了,还有就是有时有英文的关键词,这时刚好有这个页面的链接里面有这个英文,它又把链接在重新替换一次,又导致页面破坏!
那么有什么办法解决吗?
解决办法:打开e/class/functions.php
  查找
  '/'.$r[keyname].'/i'
  替换为
  '/'.$r[keyname].'(?!([^<]*>)|([^<]*<\a="">))/i'
帝国cms 7.5 这个位置在functions.php文件的560和564的位置,以下就是修改后的代码
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].'(?!([^<]*>)|([^<]*<\a="">))/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);  //添加(?!([^<]*>)|([^<]*<\a="">))以防止替换图片ALT和title中的关键词为链接和超链接内容
		}
		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].'(?!([^<]*>)|([^<]*<\a="">))/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
		}
卓越飞翔博客
上一篇: 帝国cms7.5无刷新 Ajax 点击加载更多列表信息源代码
下一篇: 帝国CMS信息提交与修改时,实现缩略图(titlepic)自动远程保存到本地的高效方法
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏