Random password generator in PHP
When you want a random password you might think that for instance uniquid() is a good fit. It’s not though as it will only return hex characters.
However, using array_rand() and range() we can make for a pretty good solution:
function randCode($length = 5){
$ranges = array(range('a', 'z'), range('A', 'Z'), range(1, 9));
$code = '';
for($i = 0; $i < $length; $i++){
$rkey = array_rand($ranges);
$vkey = array_rand($ranges[$rkey]);
$code .= $ranges[$rkey][$vkey];
}
return $code;
}
The idea here is to mix, A-Z, a-z and 1-9. I’m leaving zero out of it to avoid confusion between it and O.
As you can see array_rand will return a random key from the array that you then can use to get at the value.
First we pick a key for a random range (A-Z, a-z or 1-9) in $rkey. Then we pick a random key from that range in $vkey, finally we use the keys to get at a random value which we concatenate on the code/password string.