Случайные буквы

Статус
В этой теме нельзя размещать новые ответы.

Dmitri

Новичок
Случайные буквы

Возникла такая проблема: хочу сгенерить случайнные буквы от 'A' до 'Z' и от 'a' до 'z', кто-нибудь знает как можно решить эту проблему?
 

Demiurg

Guest
Re: Случайные буквы

Автор оригинала: Dmitri
Возникла такая проблема: хочу сгенерить случайнные буквы от 'A' до 'Z' и от 'a' до 'z', кто-нибудь знает как можно решить эту проблему?
chr() + rand()
 

DiMA

php.spb.ru
Команда форума
если уж и давать извращенные решения, так вот такие
PHP:
echo preg_replace("/./e","chr(rand(ord('a'),ord('z')))","12345678");
8 - длина пароля
 

Nodir

Guest
Re: Случайные буквы

PHP:
function rndstr($len)
{
 $all = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

 $cnt = strlen($all) - 1;
 srand((double)microtime()*1000000);
 for($i=0; $i<$len; $i++) $pass .= $all[rand(0, $cnt)];

 return $pass;
}
 

snick

Guest
Давно еще писал такую функцию. Только немного advanced: из набора символов исключались символы, у которые при печати рубленным шритом (Tahoma, например) не различались заглавная i и маленькая L, ноль от заглавной O и т.д.

PHP:
function gen_password($length = 6)
    {
     // создаем область случайных значений
     srand ((double) microtime() * 1000000);

     $pass="";
     // цикл построения пароля по символу
     while (strlen($pass) < $length)
        {
         // выбор случайного числа из указанного множества
         $sim = (int) rand(49,121);
         // проверка того, что полученный символ не входит в список запрещенных символов
         $bool_sim = (($sim >= 58) && ($sim <= 64) || ($sim >= 91) && ($sim <= 96) || ($sim == 79) || ($sim == 111) || ($sim == 108) || ($sim == 73));
         // если случайный символ не есть запрещенный, то включаем этот символ в пароль.
         if (!$bool_sim) $pass .= chr($sim);
        };
     return $pass;
    };
 

DiMA

php.spb.ru
Команда форума
Автор оригинала: snick
бредятинка... Во-первых, это пишется за 100 секунд (замерил, когда это сообщение писал), и если пишется, то правильно + коротко.

PHP:
function pass($len=6) {
$b="QWERTYUPASDFGHJKLZXCVBNMqwertyuopasdfghjkzxcvbnm123456789";
while($len-->0) $s.=$b[mt_rand(0,strlen($b))];
return $s;
}
и никаких проблем с L/I и o/0 (нуль) нет
 

Chervyak

Новичок
PHP:
function pass($len=6) {
$b="QWERTYUPASDFGHJKLZXCVBNMqwertyuopasdfghjkzxcvbnm123456789";
while($len-->0) $s.=$b[mt_rand(0,strlen($b)-1)];
return $s;
}
Чтобы пустой символ не генерировался.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху