* Функция содержит в себе возможность ген. как случайных чисел ,текста. Так и по заданному шаблону.
* К тому же весь функционал реализован в 30 строк кода. Вроде даже не быдло кода
<?
/*
* by Saint 2017
* For Fiera.su
* Функция содержит в себе возможность ген. как случайных чисел ,так и по заданному шаблону .
* К тому же весь функционал реализован в 30 строк кода . Вроде даже не быдло кода ;)
* Выведет случайный текст из 8 символов
* echo RandomString(8);
* Выведет 6 случайных буквы из анг. алфавита
* echo RandomString(6,'letters_en');
* Выведет 6 случайных буквы из Русс. алфавита
* RandomString(6,'letters_ru');
* Выведет 5 случайных чисел которые не будут повторяться
* echo RandomString(5,'num');
* Выведет 5 случайных символов со всякими решётками и собаками
* echo RandomString(5,'trash');
* Выведет реально случайный текст с обозначенным числом символов
* echo RandomString(5,'real_random');
* Выведет рандомный текст из своих символов и букв
* echo RandomString(5, 'custom','@135790absUSB@');
Какое же практическое применение в недогенирации может быть? безопасность и всё такое .
Всё просто ,при гени. того же пароля all из 8 символов вполне достаточно ,а вот если какой-то код авторизации не будет
повторяться это упростит восприятием юзером . иногда это удобно при реализации всякие кодов пополнений ,
инвайтов или регистрации по коду на на email или типа того .
*/
function RandomString($num = 6, $type = 'all' , $custom = false)
{
$output = false;
$data = array(
'all' => 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#%$*()[];.^&',
'letters_en' => 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'letters_ru' => 'абвгдежзийклмнопрстуфчцчшщыэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ',
'num' => '0123456789',
'trash' => '@#%$*()[];.^&',
);
if ($type != 'custom' AND $type != 'real_random') {
$output = $data[$type];
}
//Рандомный текст из своих символов и букв
if ($type == 'custom') {
$output = $custom;
}
//Перемешиваем
$output = str_shuffle($output);
$output = substr($output,3,$num);
//Реальный рандом текста
if ($type == 'real_random') {
for($s = null, $i = 0; $i < $num; ++$i)
{
$s .= $data['all'][rand(0, strlen($data['all']) - 1)];
}
$output = $s;
}
//Выводим результат
return $output;
}
Так же код можно глянуть на http://dumpz.org/2537509/