我们在使用dedecms v5.7进行英文搜索的时候,发现如果输入的是大写字母,dedecms将自动过虑掉,而只搜索小写的字母和数字,所以往往对于得到的搜索结果不是很令人满意,纠其原因发现dedecms中/include/helpers/filter.helper.php文件中正式表达式没有添加A-Z的规则,立即动手来解决这个小Bug吧!
例如:我们搜索“Dede58”,但搜索结果中只保留了“ede58”,过滤掉大写字母的截图如下:
首先下载你的/include/helpers/filter.helper.php文件到本地电脑,并用编辑器打开,找到程序的第169行,代码如下:
if(preg_match("/[^0-9a-z@#\.]/",$keyword[$i]))
将其修改为:
if(preg_match("/[^0-9a-zA-Z@#\.]/",$keyword[$i]))
上传并覆盖原文件,重新测试搜索结果!