- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
$l = array('q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '-', '.');
$len = 9;
for ($i = 0; $i < 100; $i++) //цикл для проверки=)
{
$login = '';
while (strlen($login) < $len) {
$current = $l[mt_rand(0, (((strlen($login) + 1 == $len) || (strlen($login) == 0)) ? count($l) - 3 : count($l) - 1))]; //мама ради миня абратна
$login. = ((substr($login, strlen($login) - 1, 1)) == $current) ? '' : $current;
}
echo $login."<br>";
}
наверно самый извращенный код для генереции случайних строк который я когда либо писал=)
примерно такие требования
в начале и в конце как точки, так и тире быть тоже не должно
Т.е другими словами, должен начинаться буквой и заканчиваться буквой
не иметь двух тире и двухточие подряд
guest 15.03.2010 18:42 # −14
guest 15.03.2010 20:47 # +1.4
guest 15.03.2010 20:49 # −3.2
nur 15.03.2010 21:05 # 0
guest 15.03.2010 21:35 # 0
nur 16.03.2010 14:53 # 0
guest 15.03.2010 21:32 # 0
guest 16.03.2010 13:52 # 0
murz 16.03.2010 13:56 # 0
babaika 16.03.2010 15:05 # 0
murz 16.03.2010 16:07 # 0
babaika 16.03.2010 16:22 # 0
1) должен начинаться буквой и заканчиваться буквой
2) не иметь двух тире и двухточие подряд
Формально нормально, только он генерит какашку, слишком много символов совпадает. Можно заюзать
base_convert( sha1(microtime()), 16, 36)
и потом оторвать нужное количество символов..
murz 16.03.2010 16:58 # −0.2
guest 16.03.2010 19:22 # 0
Немного отличается от условия задания в том, что здесь никогда не будет двух одинаковых символов подряд. Но не думаю, что это очень существенно.
nur 16.03.2010 19:58 # 0
guest 16.03.2010 20:27 # 0
guest 31.03.2010 21:18 # +1
но больше всего порадовал коммент в конце строки )