将转换后的非国家字符关键字数据保存在代码点火器中的位置


Where to keep the converted non-national character keyword data in codeigniter?

我的codeigniter应用程序中有一个简单的搜索引擎,带有分页结果。当我将结果发送到函数中时,它会查询数据库并进行分页:

 function keyword_search($keyword, $from){...}

我有一个基于标准分页库的简单、基本的代码点火器分页。一切都很顺利,直到我尝试在搜索中使用国家抛光字符,我使用

urldecode($keyword) 

在keyword_search()中,它可以很好地查询数据库,但问题是,当我尝试分页时。完美的解决方案是将这些国家字符转换为一些通用字符,在url中推送这个值,当我的应用程序在url中使用这个转换后的字符串时,它会搜索我的本地未转换字符串(出于SEO目的,没有国家字符也很好)。

对于制作解决方案,比方说,将波兰字符转换为英语字符的功能是

$this->polish_characters($keyword);

我应该把我的原始搜索字符串放在哪里,我想在URL中推送转换后的字符串以进行分页时搜索它?

对于转换,您可以使用PHP的iconv。

由于您使用的是utf8_general_ci,因此您仍然可以搜索这两个版本的关键字。只要使用like和MySQL就可以提取像"máša"这样的单词,即使你提供了"masa"作为搜索参数:

SELECT * FROM myTable WHERE keyword like 'masa'