PHP 编码网址空白区域


PHP encoding url empty spaces

可能的重复项:
包含空格和特殊字符的 URL 的最佳做法

正在尝试制作"漂亮"的网址,我想知道人们如何处理空白空间,例如,如果我创建一个带有标题的新论坛线程:

awesome thread title

我想用-符号替换空格,所以我应该得到类似的东西:

http://website.com/forum/thread/awesome-thread-title

现在它似乎正在工作,但是如果用户写了,我该怎么办

some-title

从数据库获取记录时,这会破坏我的代码,因为我会将-符号替换为空白空间,而数据库中的行名实际上会-因此我找不到任何东西。

我可以举更多的例子...

您不应该依赖 url 的标题部分来查找数据库中的元素。在它前面加上一些 ID 并忽略标题。查看您当前在堆栈溢出中查看的页面的 URL...

不要尝试对 slug 进行逆向工程,以搜索数据库中的实际标题。当用户创建新帖子时,从标题("真棒线程标题" -> awesome-thread-title)形成一个 slug,确保它在数据库中是唯一的,并将其保存在数据库中

通常,您也可以将"漂亮"的URL片段存储在数据库中,并将其用作唯一索引,因为正如您所注意到的,"美化"是不可逆的。