2

我正在使用 codeigniter 开发一个 PHP 站点,并希望在如何实现干净的 url 而不是数字 id 方面得到一些帮助。

例如,而不是 www.site.com/category/view/1 ,我想要类似 www.site.com/category/view/automobiles

类别 = 类
视图 = 方法
1 = 变量

我的研究
我是 PHP 和 codeigniter 的新手,到目前为止,我想要实现这一点的方法是检索 uri->segment(3),然后在数据库中检查数据库中的相应 ID。为此,我可能需要使用唯一的类别名称,我会这样做。

我的问题
但是我的问题是,如果类别名称中有特殊字符或字符串中有空格,会发生什么?我想将空格转换为连字符或下划线,并省略任何其他特殊字符。在检索时,我想将 URI 段解码为其原始形式,以便检查数据库的 ID。

4

2 回答 2

1

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

于 2011-05-20T05:08:37.043 回答
0

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

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

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

这就是 Wordpress 的工作方式。

于 2011-05-23T09:38:33.590 回答