Лучший способ создать строку 6char UP / Down? PHP - PullRequest
0 голосов
/ 04 октября 2011

Я знаю, что этот вопрос невероятно распространен, но я спрашиваю следующее (Google не дает результатов, а другой вопрос, который был похож на мой, имел неверный источник: s):

Что было былучший способ получить случайную 6-символьную строку в алфавитном порядке, например, «aWGuPk» / «pZyTFu» или что-то в этом роде (в PHP)?По 'лучшему', функции с наименьшим количеством кода и наиболее эффективным?

Извините, если это может быть дубликат чего-то, чего я не могу найти на SO.

Спасибо,Karan

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Я использую эту функцию (я должен был вырезать и вставить ее из Интернета, не могу вспомнить, где!): -

function createRandomString($len=10) {
    $chars = "abcdefghijkmnopqrstuvwxyz023456789";
    srand((double)microtime()*1000000);
    $i = 0;
    $pass = '' ;
    while ($i <= $len) {
        $num = rand() % 33;
        $tmp = substr($chars, $num, 1);
        $pass = $pass . $tmp;
        $i++;
    }
    return $pass;
}

использование: -

$myStr = createRandomString(6);

Добавьте заглавные буквы в $ chars, если хотите смешанный регистр

0 голосов
/ 04 октября 2011

Лично я бы создал массив допустимых символов и использовал бы array_rand для добавления их в строку требуемое количество раз:

// str_split requires PHP5
$chars = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
for ($i = 0, $str = ''; $i < 6; ++$i) {
    $str .= $chars[array_rand($chars)];
}

Кстати, при генерации случайных строк, которые будут показаныдля пользователя я склонен удалять гласные из списка символов, чтобы избежать случайного создания оскорбительных слов.

...