没有任何CMS是完美的,不论是使用DEDE织梦还是帝国CMS建设网站,常会发现随着网站的调整出现这样那样的小问题,有时莫名其妙得让人抓耳挠头。这不,华哥在首页模板使用帝国CMS灵动标签读取文章摘要时,就出现把双引号显示为”如下图:
尼玛!帝国功能那么强却自带这样的小BUG,这不是残缺嘛!看来和这部香港老电影有得一拼!
别看是个小小的问题,这还需要修改帝国CMS的系统文件才能搞定呢!
原因:
正常情况下,帝国CMS会自动提取正文内容里的前部分文字为简介,但有时候正文里有特殊的字符,这样就会导致自动提取简介的时候会产生”,其实是帝国没有完成过滤掉特殊的字符。
解决办法:
打开文件e/class/connect.php
找到函数 sub($string,$start=0,$length,$mode=false,$dot='')
将其中的代码
$string = str_replace(array(' ','&','"','<','>','''), array(' ','&','"','<','>',"'"), $string);
替换为$string = str_replace(array(' ','&','"','<','>',''','“','”'), array(' ','&','"','<','>',"'",'“','”'), $string);
1.如上图,如按教程查找,那么长的代码,你可能会什么也找不到,因此华哥只用start=0来进行查找,最终在922行找到,有了图后,以后搜索“字符截取函数”应该更容易找到,不过要注意的是,此操作环境是帝国CMS7.2,其他版本未知。
2.改帝国CMS的系统文件是很有风险的,为了防止出错(有时粘贴过来的代码格式不纯净),有后悔药可以吃,华哥将原来的代码进行了注释,然后再复制粘贴上文解决方法中的代码。
上传后,发现OK。
举一反三,遇到其它类似情况在这里添加要替换的字符和替换后的字符即可。
本教程来自网络,由华哥在帝国CMS7.2版本和学而行营销网实践通过。