首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成字母数字ID(唯一字符串)

问生成字母数字ID(唯一字符串)
EN

Stack Overflow用户
提问于 2010-10-05 13:40:17
回答 4查看 1.8K关注 0票数 1

如何在PHP或AS3等中生成字母数字ID,而不是传统的自动递增数字ID。

例如,YouTube将此用于其视频ID。Facebook为上传的图像名称生成长的字母数字字符串,等等。

编辑:--这不是如何生成字符串本身,而是如何生成唯一的字符串,就像MySQL列中的auto_increment列一样。

EN

回答 4

Stack Overflow用户

发布于 2010-10-05 13:44:58

在PHP中,您可以使用转换更改为更大的数字基数(最多为36,格式为0-9a-z,其值为10,等等)。

你好,阿林

票数 1
EN

Stack Overflow用户

发布于 2010-10-05 14:34:43

为了保证唯一性,您需要在服务器端提供ID。然后,它可以是一个MySQL单元,您可以使用它来获取下一个数字。如果您有一个64位的编号,那么您也可以在加载页面时生成这个数字,而不管最终是否需要一个唯一的ID,如果您需要始终将它嵌入到JavaScript文件中。然后,例如,如果用户保存了数据,则可以存储与其一起提交的ID。只要确保计数器可靠地递增,就不需要保留未使用的ID号,因此使用MySQL,除了保存的实际数据外,您只需要一个单元格就可以始终递增。

使用64位,您将永远不会用完ID,如果您希望下一个ID是什么,您可以重新排序这些位,如果您希望它是不可预测的。如果需要任何类型的安全性,您应该更多地研究从运行中的数字到不可预测的数字之间的1:1映射。

至于将递增号保存在何处,可以是任何SQL数据库中的一行,如果您处理锁定,则可以是一个简单的文本文件,或者如果您可以始终在服务器上运行程序,则可以使用任何类型的IPC与其通信以获得新的数字。只要确保服务器重新启动该序列,至少从它所在的位置继续。

票数 1
EN

Stack Overflow用户

发布于 2010-10-05 14:52:40

唯一的最佳方法是将当前时间/日期(以毫秒为单位)与随机数相结合。看看UUID 's

标识符

它们看上去不像youtube上的字符串,但它们非常独特。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档