漂亮的 url 而不是 php/codeigniter 中的 id

发布于 2024-11-08 13:51:45 字数 487 浏览 0 评论 0原文

我正在使用 codeigniter 开发一个 PHP 网站,并且希望获得一些关于如何实现干净的 url 而不是数字 id 的帮助。

例如,我想要像 www.site.com/category/view/automobiles 这样的东西,而不是 www.site.com/category/view/1

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

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

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

I am developing a PHP site using codeigniter, and would like some help in how to go about achieving clean urls instead of numeric ids.

For example, instead of www.site.com/category/view/1 , i want something like www.site.com/category/view/automobiles

category = class
view = method
1 = variable

My Research
I am new to PHP and codeigniter, and so far how I wanted to achieve this was, to retrieve the uri->segment(3) and then check the DB for the corresponding ID in the database. For that, I would probably need to use unique category names, which I will.

My Problem
But my problem is, if the category name has special characters or have spaces in the string, what will happen? I'd like to convert the spaces into hyphens or underscores, and omit any other special characters. And while retrieving, i would like to decode the URI segment to it's original form so I can check the database for the ID.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初见终念 2024-11-15 13:51:45

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

You should not use any special characters but hyphens so that you need no decoding. You can use DB for your requirement as you describe.

最舍不得你 2024-11-15 13:51:45

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

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

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

这就是 WordPress 的工作原理。

You need to just add a new column to your DB named "clean-url" and index it. Then when adding new category of something, build a clean url string from the name with a function.

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

You can add the chars you don't want it. Then search in the DB for matching stings in your controller.

This is the how Wordpress works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文