0

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

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

我有基于标准分页库的简单、基本的 codeigniter 分页。一切都很顺利,直到我尝试在搜索中使用国家波兰语字符,我正在使用

urldecode($keyword) 

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

为了制定解决方案,假设将波兰语字符转换为英文字符的函数是

$this->polish_characters($keyword);

我应该将原始搜索字符串保存在哪里,以便在我将转换后的搜索字符串推送到 URL 以进行分页时搜索该字符串?

4

1 回答 1

1

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

而且由于您使用的是utf8_general_ci,您仍然可以搜索关键字的两个版本。只需使用 like,即使您提供 'masa' 作为搜索参数,MySQL 也能提取像 'máša' 这样的词:

SELECT * FROM myTable WHERE keyword like 'masa'
于 2012-09-05T23:01:20.457 回答