是否可以将完整的 utf-8 url 转换为唯一 ID

Is it possible to convert a full utf-8 url to a unique ID

是否可以将 url 中的路径 utf-8 转换为 php 中的短且固定的唯一 ID?

我想要每次都一样的结果。

例如这个:

questions/صصثبصث/ask?q=asd$a=سیبث

变成这样:34Sdd6N

在数据库 table 中保存 url 并添加列 "code" 或其他类似的名称到 table 。您可以为每个插入 url 添加随机字符串,因此使用此代码获得 url 。小心不要使用重复代码。

你想问的基本上是散列。 php 中也有一些函数可用于散列。其中一项功能可用 here。我希望你会发现它有用。

当我们谈论性能时,CRC32 是最合适的选择。如果您将 MySQL/MariaDB 用作 DBMS,您可以创建带有 UNSIGNED 标志的 INT 列,并且它将每个 url.[= 仅以 4 个字节完全存储 CRC32 结果。 15=]

PHP 具有 crc32 函数,它接受字符串并具有很好的散列分散性,因此您不应该真正关心重复项。

如果您想在不影响数据库性能的情况下将 ABCDEF 字母添加到散列中,您还可以在 CRC32 结果周围添加 dechex 包装器(并确保使用 hexdec 将其转换回来)。