php - 如何从 24 个字符的字符串中获取唯一的 8 个字符的字符串?

标签 php string mongodb unique

我想从一个唯一的 24 个字符的字符串中获取一个 8 个字符的字符串,以便制作一个缩短的 URL。 8 个字符的字符串必须基于唯一的 24 个字符的字符串。如果我随机生成一个 8 个字符的字符串,则必须进行数据库查找以查看它是否尚未被占用。另外,我不想使用 24 个字符串的前 8 个字符或后 8 个字符。这 24 个字符是 MongoDB 对象 ID。谢谢。

最佳答案

8 个太少了。

以下是如何从 24 中得到 16:

$id = '507f191e810c19729de860ea';

$str = base64_encode(implode('', array_map(function($c) { return chr(hexdec($c)); }, str_split($id, 2))));

var_dump($str); // UH8ZHoEMGXKd6GDq

对于较少的字符,您需要更大的字符库,但问题是 - 没有剩下的安全网址。

关于php - 如何从 24 个字符的字符串中获取唯一的 8 个字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146811/

相关文章:

node.js - Mongoose 只返回文档的 id

c# - 为什么 MongoDB 中的多个 session 比一个 session 更快?

PHP REQUEST_METHOD POST 变成 GET

python - 如何在matplotlib中显示LaTeX f字符串

python - 如何从 python 中的字符串中提取某些信息?

c# - 这种字符串操作可以吗?

mongodb - 调用 mongo 存储库的保存方法时未调用 Mongo Date 自定义转换器

c# - 如何通过 Unity 访问服务器上的 PHP 文件以进行 MySQL 数据库操作?

php - 当在Linux Apache服务器上执行php文件时,替换php文件会发生什么?

php - Symfony:违反完整性约束:500 内部服务器错误