从php中的数字生成字母数字代码

时间:2011-05-18 10:29:59

标签: php math

我想向我的数据库中的所有用户输入一个5个字母的字母数字代码,在此处,识别我的用户的唯一方法是使用MySQL数据库中的用户名或ID字段。我想使用用户的ID,然后生成5个字母/数字代码,如;

ID USERNAME   CODE
1  Honf       sdew4
2  Djsoft     hgdTs
3  Hanz       HGSTs

有关如何在php上制作此内容的任何建议吗?谢谢!

4 个答案:

答案 0 :(得分:3)

如果您希望代码与特定ID相关(这只会使用小写字符和数字),则可以使用base_convert执行此操作:

$id = 12;
$code = base_convert($id, 10, 36);
//padding to specified length
$code = str_pad($code, 5, '0', STR_PAD_LEFT);

答案 1 :(得分:2)

检查此question的已接受答案。这可能会对你有帮助。

我用10个lac数测试过它。

答案 2 :(得分:2)

rand_uniqid() php的功能可以帮到你......

rand_uniqid(9007199254740989); will return 'PpQXn7COf' and:
rand_uniqid('PpQXn7COf', true); will return '9007199254740989'

答案 3 :(得分:2)

您可以使用散列算法

substr(strrev(md5($username)),0,5)

这将返回十六进制字符。但请注意,如果你的哈希域使用A-Z,a-z,0-9,如果你有很多用户,可能会有冲突,而且这些哈希“可能不会”是唯一的。