|
|
|
| Помогите сделать рендом букв и цифр и спец-знаков чтоб была каша вроде fds90(в)67dtgas, то-есть каша из букв и цифр и прочего длиной 12 символов | |
|
|
|
|
|
|
|
для: nikolayers
(26.02.2010 в 18:21)
| | Перемешайте массив необходимых символов, и возьмите из него первые 12 элементов. | |
|
|
|
|
|
|
|
для: nikolayers
(26.02.2010 в 18:21)
| | Посмотрите на этом сайте в разделе готовых скриптов. Тут етсь код вывода рандомного пароля | |
|
|
|
|
|
|
|
для: DEM
(26.02.2010 в 18:58)
| | Зачем? | |
|
|
|
|
|
|
|
для: nikolayers
(26.02.2010 в 18:21)
| |
function keyGen($c = 30) // длина каши по умолчанию если параметр при вызове упущен
{
$symbols = "0123456789abcdefghijklmnopqrstuvwxy zABCDEFGHIJKLMNOPQRSTUVWXUYZ_-.+="; // любые знаки
$randMax = strlen($symbols) - 1;
$key = "";
for($i = 0; $i < $c; $i++)
$key .= $symbols[rand(0, $randMax)];
return $key;
}
$kasha = keyGen(12); // длина каши = 12 символам
echo $kasha;
|
| |
|
|
|
|
|
|
|
для: sl1p
(27.02.2010 в 02:34)
| | А зачем цикл? В РНР уже готовое есть, которое позволяет одной строкой получить результат. ) | |
|
|
|
|
|
|
|
для: sim5
(27.02.2010 в 05:28)
| |
<?
$kasha = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz012345678 9"), 0, mt_rand(12, 12));
?>
|
при желании можно добавить Большие буквы и символы | |
|
|
|
|
|
|
|
для: chexov
(27.02.2010 в 06:58)
| | Спасибо, но не мне это надо :) | |
|
|
|
|
|
|
|
для: sim5
(27.02.2010 в 08:39)
| | ВО | |
|
|
|
|
|
|
|
для: chexov
(27.02.2010 в 06:58)
| | К этому варианту как минимум две претензии:
1. Символы в итоговой строке никогда не повторяются, что резко сокращает количество возможных вариантов.
2. Длинна итоговой строки ограничена количеством допустимых символов. (в вашем случае - всего 36) | |
|
|
|
|
|
|
|
для: Loki
(27.02.2010 в 11:06)
| | >при желании можно добавить Большие буквы и символы
проверьте количесвто вариантов, загоните запись результа в цикл на запись в БД, к примеру 1000 записей, и потом проверьте наличие совпадений:)))))))) | |
|
|
|
|
|
|
|
для: chexov
(28.02.2010 в 03:44)
| | не знаю почему, но такой вариант давал дубл. практически при 100 записей.
начали использовать, пусть и меньше вариантов.
<?
function strrand ($len=32) {
return substr(md5(uniqid(rand(), true)).($len>32 ? strrand($len-32) : null), 0, $len);
}
?>
|
а может мне просто показалось... | |
|
|
|
|
|
|
|
для: г о с т ь
(28.02.2010 в 06:07)
| | моя функция даже при 6 значном результате с использованием только латиницы и цифр даже на 1000 результатов не давал дублей | |
|
|
|
|
|
|
|
для: chexov
(28.02.2010 в 06:44)
| | Ваша функция способна выдать результат длиной менее $len символов (а иногда - вообще пустой) .
Что от нее не требуется условиями задачи совершенно. | |
|
|
|