function getPassword() {// Возвращает валидный пароль
global $length; // Длинная пароля
$glength = $length;
$password = getRandomPassword(); // Пароль
do {
$password = getRandomPassword();
$test_lentgh = iconv_strlen($password, 'UTF-8') != $glength; //Проверка пароля на длинну
} while($test_lentgh);
return $password;
Функция берет пароль и возвращает только те, которые соответствуют заданной длинне.
Как можно в цикл запихать проверку на валидность?
Требования к паролю такие: Минимум 1 Спецсимвол, и минимум 2 цифры.
в пароле есть кирилица.
Вот реализация которая вас интересует:
function getPassword($length)
while (true) {
$password = getRandomPassword();
if (iconv_strlen($password, 'UTF-8') != $length) continue;
if (/* не удовлетворяет условию 2 */) continue;
// если все условия выполнены, то возвращаем результат
return password;
}
}
Но в целом такой подход плохой, потому как результат можно никогда так и не получить. Лучше переделать функцию getRandomPassword() так, что бы она генерировала именно то, что вам нужно
Сборка персонального компьютера от Artline: умный выбор для современных пользователей