漂亮的网址而不是php / codeigniter中的id

时间:2011-05-20 04:51:54

标签: php codeigniter clean-urls

我正在使用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。

2 个答案:

答案 0 :(得分:1)

您不应该使用任何特殊字符,而是使用连字符,这样您就不需要解码。您可以在描述时使用DB满足您的要求。

答案 1 :(得分:0)

您只需向名为“clean-url”的数据库添加一个新列并将其编入索引即可。然后在添加新类别的东西时,使用函数从名称中构建一个干净的url字符串。

function clean_url($string)
{
    return str_replace(array('+', '!', '&'), '_', $string);
}

您可以添加不需要的字符。然后在数据库中搜索控制器中的匹配项。

这就是Wordpress的工作原理。