方法一:
$str = uniqid(mt_rand(),1);
echo 'sha1: ',sha1($str);
echo '
';
echo 'MD5:',md5($str);
?>
采用uniqid函数,配合mt_rand随机函数,最后使用散列值得出最终唯一值。
但是通过测试中,发现随机数的唯一性有些相同部分,大概有11位相同的(但无大碍)
第二种方法:GUID
echo sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X',mt_rand(0,65535),mt_rand(16384,20479),mt_rand(32768,49151),65535));
echo "
";
echo sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X',65535));
?>
实例三:用uniqidmt_rand生成随机不重复字符串的方法
//使用uniqid mt_rand 生成随机不重复字符串的方法
$snKeys=array();
$prefix='code';//字符串前缀
while(count($snKeys) < $total) {
$snKeys[$prefix . md5(uniqid(mt_rand(),true))] = null;
}
print_r($snKeys);
?>