我想使用url字符串中的搜索字词在codeigniter中实现搜索但是在允许不允许的uri字符时遇到问题('是主要问题)
e.g。 www.example.com/search/find/search_term/collector的edition / category / stackoverflow
基本上在'stackoverflow'类别中找到'collector's edition'
这会引发URI异常错误 - 即使我使用javascript codeigniter对其进行编码也会对其进行编码。显然我不想去允许所有角色。
我还希望能够在返回数据时对其进行解码,这样我也可以在输入框中显示搜索词。
答案 0 :(得分:1)
使用查询字符串而不是与CI建议的允许URI字符作斗争:
example.com/search/?search_term=collector's+edition&category=stackoverflow
确保您启用了查询字符串($_GET
):
$config['allow_get_array'] = TRUE; // This enables $_GET data
// The name of this item is misleading, it's not what you might think
$config['enable_query_strings'] = FALSE; // <-- Ignore this, make sure it's FALSE
抓住搜索词:
$query = $this->input->get('search_term'); // No need to decode
答案 1 :(得分:0)
您需要在allowed_uri_chars中添加“=”。您将在config / config.php文件中找到该字符串。
它也可能是。 (点)在那里。请尝试添加点。你需要有点勇敢 并试验找出有效的方法。
尝试$config[‘permitted_uri_chars’] = ‘a-z 0-9~%.:?=_\-’;