Php 随机字母数字pin码?

Php 随机字母数字pin码?,php,Php,我正在为脚本创建一个随机的5个字符的pin码。我想知道是否还有人有更好的 $pin = ''; while($i != 5){ $string = '23456789abcdefghjkmnprstvwxyzABCDEFGHJKLMNPRSTVWXYZ'; $pos = rand(0,(strlen($string)-1)); $pin = $pin . $string[$pos]; $i++; } echo $pin; 只是略有不同/较短。没有理由每次都声

我正在为脚本创建一个随机的5个字符的pin码。我想知道是否还有人有更好的

$pin = '';
while($i != 5){
    $string = '23456789abcdefghjkmnprstvwxyzABCDEFGHJKLMNPRSTVWXYZ'; 
    $pos = rand(0,(strlen($string)-1));
    $pin = $pin . $string[$pos];
    $i++;
}

echo $pin;

只是略有不同/较短。没有理由每次都声明有效字符,而for循环通常被认为比while更可取

$pinlength = 5;
$charSet = '23456789abcdefghjkmnprstvwxyzABCDEFGHJKLMNPRSTVWXYZ'; 
$pin = '';
for($a = 0; $a < $pinlength; $a++) $pin .= $charSet[rand(0, strlen($charSet))];

echo $pin;
或者,就为了他妈的:

$makeCharacterSelect = 
         function ($charSet) {return function use ($charSet) 
                                     {return $charSet[rand(0, strlen($charSet))];};
$pinlength = 5; $c = $makeCharacterSelect('23456789abcdefghjkmnprstvwxyzABCDEFGHJKLMNPRSTVWXYZ');

$pin = '';
for($a = 0; $a < $pinlength; $a++) $pin .= $c();

我希望我的pin码是HELL或FACK,也就是说,你可能想删除所有元音。为了可读性,你故意省略了1、l、0和O,对吗?同样,很多小写/大写字母也容易混淆吗?像v和v??使用mt_rand而不是rand,rand不是随机的。这将包括不需要的字符。这也不是随机的,虽然这可能不是一个大交易,我想你指的是$pin.=兰特而不是$rand。
$makeCharacterSelect = 
         function ($charSet) {return function use ($charSet) 
                                     {return $charSet[rand(0, strlen($charSet))];};
$pinlength = 5; $c = $makeCharacterSelect('23456789abcdefghjkmnprstvwxyzABCDEFGHJKLMNPRSTVWXYZ');

$pin = '';
for($a = 0; $a < $pinlength; $a++) $pin .= $c();