在PHP中生成一定长度和限制的唯一随机字符串?

AKo*_*Kor 11 php

我需要生成一个8个字符的随机字母数字字符串.所以看起来应该有点像b53m1isM.大写和小写,字母和数字.

我已经有一个运行八次的循环,我想要它做的是在每次迭代时将一个字符串与一个新的随机字符连接起来.

这是循环:

$i = 0;
    while($i < 8)
    {
        $randPass = $randPass + //random char
        $i = $i + 1;
    }
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

Thi*_*ter 28

function getRandomString($length = 8) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $string = '';

    for ($i = 0; $i < $length; $i++) {
        $string .= $characters[mt_rand(0, strlen($characters) - 1)];
    }

    return $string;
}
Run Code Online (Sandbox Code Playgroud)

  • 它是随机的,因此每个字符都有相同的变化 - 即字符串越长,重复字符的可能性就越大. (2认同)

Dej*_*vic 5

function randr($j = 8){
    $string = "";
    for($i=0; $i < $j; $i++){
        $x = mt_rand(0, 2);
        switch($x){
            case 0: $string.= chr(mt_rand(97,122));break;
            case 1: $string.= chr(mt_rand(65,90));break;
            case 2: $string.= chr(mt_rand(48,57));break;
        }
    }
    return $string; 
}

echo randr(); // b53m1isM
Run Code Online (Sandbox Code Playgroud)