如何在PHP或AS3等中生成字母数字ID,而不是传统的自动递增数字ID。
例如,YouTube将此用于其视频ID。Facebook为上传的图像名称生成长的字母数字字符串,等等。
编辑:--这不是如何生成字符串本身,而是如何生成唯一的字符串,就像MySQL列中的auto_increment列一样。
发布于 2010-10-05 13:44:58
在PHP中,您可以使用转换更改为更大的数字基数(最多为36,格式为0-9a-z,其值为10,等等)。
你好,阿林
发布于 2010-10-05 14:34:43
为了保证唯一性,您需要在服务器端提供ID。然后,它可以是一个MySQL单元,您可以使用它来获取下一个数字。如果您有一个64位的编号,那么您也可以在加载页面时生成这个数字,而不管最终是否需要一个唯一的ID,如果您需要始终将它嵌入到JavaScript文件中。然后,例如,如果用户保存了数据,则可以存储与其一起提交的ID。只要确保计数器可靠地递增,就不需要保留未使用的ID号,因此使用MySQL,除了保存的实际数据外,您只需要一个单元格就可以始终递增。
使用64位,您将永远不会用完ID,如果您希望下一个ID是什么,您可以重新排序这些位,如果您希望它是不可预测的。如果需要任何类型的安全性,您应该更多地研究从运行中的数字到不可预测的数字之间的1:1映射。
至于将递增号保存在何处,可以是任何SQL数据库中的一行,如果您处理锁定,则可以是一个简单的文本文件,或者如果您可以始终在服务器上运行程序,则可以使用任何类型的IPC与其通信以获得新的数字。只要确保服务器重新启动该序列,至少从它所在的位置继续。
发布于 2010-10-05 14:52:40
https://stackoverflow.com/questions/3864157
复制相似问题