function randSymbol(){
$str = 'qwertyuiopasdfghjklzxcvbnm';
return $str[mt_rand(0,strlen($str)-1)];
}
В переменной $str - указываются символы из которых будет состоять парольРазберем подробно строку
return $str[mt_rand(0,strlen($str)-1)];
strlen($str) - кол-во символов в строке $strmt_rand(0,strlen($str)-1) - случайное число от 0 до [Длина строки $str]-1, т.е. номер символа
$str[mt_rand(0,strlen($str)-1)] - случайный символ из строки
Во-вторых нужна функция создания строки
И тут я хочу использовать, возможно не всем знакомую функцию обратного вызова
preg_replace_callback()
Формат вызова такой:
mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] )
Функция заменяет фрагменты текста, удовлетворяющие регулярному выражению
И вот как мы можем применить это:
function genPwd($length = 10){
$pass = str_repeat(chr(32),$length);
return preg_replace_callback('#.#','randSymbol',$pass);
}
?>
Рассмотрим ее более подробноstr_repeat(chr(32),$length) - генерируем строку строку длинной $length, состоящую из пробелов
#.# - регулярное выражение, вернет каждый символ строки
randSymbol - наша функция генерации произвольного символа
$pass - пустая строка длины $length
preg_replace_callback('#.#','randSymbol',$pass) - каждый символ строки меняется на произвольный символ
Что мы имеем в итоге?
Компактую комбинацию
function genPwd($length = 10){
$pass = str_repeat(' ',$length);
return preg_replace_callback('#.#','randSymbol',$pass);
}
function randSymbol(){
$str = 'qwertyuiopasdfghjklzxcvbnm';
return $str[mt_rand(0,strlen($str)-1)];
}
echo genPwd(6);
?>
Создающую пароль произвольной длины из заданных нами символов
1 коментар:
function GetPwd($length=6){
$result="";
for(n=0; n<$length; n++){
$result.=chr(rand(ord("a"),ord("z")));
}
return $result;
не проще?
Дописати коментар