我已经做了串产生:如何使随机字符串生成器筛选出重复的字符串?
<?php
function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 12) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
// Usage
$product_names = array();
for ($i=0; $i < 100; $i++)
$product_names[] = "code-" . createRandomPassword();
?>
我的问题是,我认为这是一个机会,这可能会重复的值,它非常重要,这并不发生,因为我将产生其中约70万元。
有没有一种确保生成的字符串不重复的好方法?
谢谢:)
为什么要去所有这些麻烦?只需使用sha1()或md5()。同样,您不会在循环的每次迭代中重新生成PRNG。你一次种下它,并且php在第一次调用rand()时自动为你做。实际上,如果您正在测试并且每次都需要相同的“随机”流,则只能手动进行种子处理。 – 2012-02-27 14:47:29