我正在使用codeigniter开发一个PHP站点,并且想要了解如何实现干净的URL而不是数字ID。
例如,我想要的是www.site.com/category/view/automobiles
,而不是www.site.com/category/view/1。 category = class
view =方法
1 =变量
我的研究
我是PHP和codeigniter的新手,到目前为止我想要实现的目的是,检索uri->段(3),然后检查数据库中DB的相应ID。为此,我可能需要使用唯一的类别名称,我会这样做。
我的问题
但我的问题是,如果类别名称有特殊字符或字符串中有空格,会发生什么?我想将空格转换为连字符或下划线,并省略任何其他特殊字符。在检索时,我想将URI段解码为它的原始形式,以便我可以检查数据库中的ID。
答案 0 :(得分:1)
您不应该使用任何特殊字符,而是使用连字符,这样您就不需要解码。您可以在描述时使用DB满足您的要求。
答案 1 :(得分:0)
您只需向名为“clean-url”的数据库添加一个新列并将其编入索引即可。然后在添加新类别的东西时,使用函数从名称中构建一个干净的url字符串。
function clean_url($string)
{
return str_replace(array('+', '!', '&'), '_', $string);
}
您可以添加不需要的字符。然后在数据库中搜索控制器中的匹配项。
这就是Wordpress的工作原理。