【发布时间】:2011-08-14 08:33:40
【问题描述】:
作为一个有趣的项目,我想尝试制作一个简单的 URL 缩短器供我自己使用,但我想尝试合并我喜欢的其他缩短器(如 bit.ly 等)中的东西。因此,在分配短 URL ID 时,我遇到了麻烦。
现在我只是手动分配代码,但我想自动化它。我可以通过分配递增的 ID 来轻松地做到这一点(我认为这可以使用 MySQL 数据库上分配的自动递增值来完成,只需对 URL 使用 PHP dechex() 函数)但似乎其他缩短器是随机的.
我知道我不会在数据库中获得数量过多的 URL,但我仍然希望保持流程高效,这使得创建随机唯一 ID 而不是在数据库中使用许多 URL 变得繁琐。我真的不知道如何制作一个系统来制作不会重复且运行缓慢的 ID。
【问题讨论】:
-
如果您确实想使用数据库中的 ID,但要让它们 看起来 随机(并且更短),请使用
(new Id())->encode($id)。如果您真的想要随机性,请使用Random::hexLowercaseString($length)之类的内容。