Я крут.
Результатом «перемешать 3 цифры от 3 до 5 и 2 английских слова через пробел; — ; буква и русское слово через -; $ ; 3 числа, слова или буквы; 2 символа из [@#$%]» является 5 4 egg sky 5 — p-теперь $ 9649sunv@@
Упомянутый ранее пример «3 числа от 100 до 150 через пробел; 5 русских и английских слов вперемешку; @@@; цифра от 1 до 9″ преобразуется в 148 150 147такойдверьзначитьmanonly @@@5
Возникли, правда, трудности с интерпретацией текста. Например 3 числа, слова или буквы можно интерпретировать как
а. Либо 3 числа, либо 3 слова, либо 3 буквы.
б. 3 элемента из набора (все числа + все слова + все буквы) (то есть, может получиться 2 числа и одна буква, скажем)
в. Одно число, одно слово, одна буква.
Тут как в поиске — угадать, что нужно юзеру, нереально. Поэтому считаем, что это вариант в.
Далее — дефолтные значения. По умолчанию — язык английский, диапазон чисел — как у функции rand.
И ещё одна трудность — когда остановиться в усложнении.
Позволив «и», я усложнил и удлинил код раз в 5. Можно позволить «по 3 числа, слова и буквы», это несколько строк всего. Можно добавить поддержку дробных чисел (сейчас можно сгенерить вот так «число от 3 до 5; точка; число от 0 до 99″). Но решил остановиться на том, что есть. Надо только имена, фамилии добавить, и поддержку мыл.
Upd. Минус есть — скорость. $rr->Rand(«число от 3 до 5; точка; число от 0 до 99″) выполняется 10 тысяч раз за 3 секунды, а rand(3,5).’.’.rand(0,99) — полтора миллиона. В 150 раз разница. ( rand(300,500)/100 вообще практически 4 млн. циклов успевает).
Upd 2. А wordpress закрывает незакрытые теги. Вот из-за таких прибамбасов это самый популярный и самый тормознутый блог-движок.
