关于Typecho数据库查询关键词带有空格时空格被过滤的问题
预计阅读时间: 1分钟
在使用Typecho的过程中发现一个问题,查询一个词,明明数据库中有这一条数据,在查询结果中怎么都查不出来,后面研究了很久,发现是typecho自动给它过滤了空格,比如查询英文词组,它中间必然带有空格,如果查询my name is,它自动给变成了mynameis,自然无法查询到结果。
搜索页面关键词带有空格被过滤:
打开/var/Widget/Archive.php文件,找到:
$keywords = $this->request->filter('url', 'search')->keywords;
替换成:
$keywords = $this->request->keywords;
使用Typecho查询语句被过滤:
打开/var/Typecho/Db/Query.php文件,找到:
if (false !== strpos(' ,)=<>.+-*/', $cha)) {
替换成:
if (false !== strpos(',)=<>.+-*/', $cha)) {
这样在开发查询的功能时,就不会过滤空格了。
后台搜索分割空格分成多词查询
打开/var/Widget/Contents/Post/Admin.php文件,找到:
$keywordsList = explode(' ', $keywords);
替换成:
$keywordsList = [$keywords];