我正在使用以下PHP来生成几个(通常是3个)随机字符串,并将它们放在会话变量中以用作控件。在PHP会话期间停止随机字符串的重复
function session_var($type) {
if (!isset ($_SESSION[$type])) {
$_SESSION[$type] = rand_string(5);
}
}
function rand_string($length) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$size = strlen($chars);
$str = '';
for($i = 0; $i < $length; $i++) {
$str .= $chars[ rand(0, $size - 1) ];
}
return ($str);
}
我如何消除在同一个随机字符串可能在同一个会议上产生多于一次难得的机会?我不希望任何会话变量是相同的。
感谢
使用'uniqid()',而不是生成自己的... http://php.net/manual/en/function.uniqid.php(假设有数字在那里是没有问题的) – 2012-02-08 17:25:39
的懒惰和垃圾的方法是'in_array()'并且在重复时再次生成字符串,但是我相信有人有比这更好的方法,所以这不会成为答案。 – DaveRandom 2012-02-08 17:26:36
[PHP的:如何生成一个随机的,唯一的,字母数字字符串?]的可能重复(http://stackoverflow.com/questions/1846202/php-how-to-generate-a-random-unique-alphanumeric-string) – 2012-02-08 17:26:56