如题所述
如果你希望永不重复 建议采用 PHP GUID
GUID是什么
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。
PHP中并不提供GUID的内部实现。为此我们可以自己写算法实现。代码片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
GUID是什么
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。
PHP中并不提供GUID的内部实现。为此我们可以自己写算法实现。代码片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-09-11
不可能永不重复,你算一下,数字共10位,字母26位,共36位字符。
显示是5位,即36*36*36*36*36次机会,等于60466176。
也只是6000万,越使用重复的机率越高。本回答被提问者和网友采纳
显示是5位,即36*36*36*36*36次机会,等于60466176。
也只是6000万,越使用重复的机率越高。本回答被提问者和网友采纳
第2个回答 2013-09-11
function getRandom($param){
$str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$key = "";
for($i=0;$i<$param;$i++)
{
$key .= $str{mt_rand(0,60)}; //生成php随机数
}
return $key;
}
getRandom(5);
$str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$key = "";
for($i=0;$i<$param;$i++)
{
$key .= $str{mt_rand(0,60)}; //生成php随机数
}
return $key;
}
getRandom(5);
希望对你有所帮助!
这是我的四位数字,字母组合循环。。。应该不会有重复。。。但是貌似很繁琐。。。
-_-#,我不明白你想问什么啊亲?至于你的代码不用说了,大眼一看就知道很麻烦!
第3个回答 2013-09-11
en 楼上说的对,不可能永不重复的