Создание случайных чисел и букв

Могу ли я попросить определенный код о том, как создавать случайные буквы и цифры одним словом. Я знаю, что есть функция PHP rand (), но я не знаю, применима ли она также к письмам. Существует также функция mt_rand (), но я не знаю, как она работает. Я планирую генерировать слово, подобное этому:

$randomcode = re784dfg7ert7; 

У вас есть простой код на этом? Заранее спасибо!

Это более обширный метод, который я использую постоянно для генерации случайных чисел, букв или смешанных:

 function assign_rand_value($num) { // accepts 1 - 36 switch($num) { case "1" : $rand_value = "a"; break; case "2" : $rand_value = "b"; break; case "3" : $rand_value = "c"; break; case "4" : $rand_value = "d"; break; case "5" : $rand_value = "e"; break; case "6" : $rand_value = "f"; break; case "7" : $rand_value = "g"; break; case "8" : $rand_value = "h"; break; case "9" : $rand_value = "i"; break; case "10" : $rand_value = "j"; break; case "11" : $rand_value = "k"; break; case "12" : $rand_value = "l"; break; case "13" : $rand_value = "m"; break; case "14" : $rand_value = "n"; break; case "15" : $rand_value = "o"; break; case "16" : $rand_value = "p"; break; case "17" : $rand_value = "q"; break; case "18" : $rand_value = "r"; break; case "19" : $rand_value = "s"; break; case "20" : $rand_value = "t"; break; case "21" : $rand_value = "u"; break; case "22" : $rand_value = "v"; break; case "23" : $rand_value = "w"; break; case "24" : $rand_value = "x"; break; case "25" : $rand_value = "y"; break; case "26" : $rand_value = "z"; break; case "27" : $rand_value = "0"; break; case "28" : $rand_value = "1"; break; case "29" : $rand_value = "2"; break; case "30" : $rand_value = "3"; break; case "31" : $rand_value = "4"; break; case "32" : $rand_value = "5"; break; case "33" : $rand_value = "6"; break; case "34" : $rand_value = "7"; break; case "35" : $rand_value = "8"; break; case "36" : $rand_value = "9"; break; } return $rand_value; } function get_rand_alphanumeric($length) { if ($length>0) { $rand_id=""; for ($i=1; $i<=$length; $i++) { mt_srand((double)microtime() * 1000000); $num = mt_rand(1,36); $rand_id .= assign_rand_value($num); } } return $rand_id; } function get_rand_numbers($length) { if ($length>0) { $rand_id=""; for($i=1; $i<=$length; $i++) { mt_srand((double)microtime() * 1000000); $num = mt_rand(27,36); $rand_id .= assign_rand_value($num); } } return $rand_id; } function get_rand_letters($length) { if ($length>0) { $rand_id=""; for($i=1; $i<=$length; $i++) { mt_srand((double)microtime() * 1000000); $num = mt_rand(1,26); $rand_id .= assign_rand_value($num); } } return $rand_id; } 

ПРИМЕНЕНИЕ:

В основном у меня есть основная функция с массивом, затем я вызываю вторичные функции для построения моей строки на основе параметра длины:

Буквы:

 $str = get_rand_letters(8); // Only Letters 

Числа:

 $str = get_rand_numbers(8); // Only Numbers 

Буквенноцифровые:

 $str = get_rand_alphanumeric(8); // Numbers and Letters 

На этот вопрос отвечает Kerrek SB , но это может помочь кому-то найти более обширный и гибкий способ.

 <?php echo substr(sha1(mt_rand()),17,6); //To Generate Random Numbers with Letters. ?> 

Использовать uniqid

 $desired_length = 10; //or whatever length you want $unique = uniqid(); $your_random_word = substr($unique, 0, $desired_length); 

Шаг 1. Создайте алфавит, $alph = "0123456789abcde..."; ,

Шаг 2: Создайте случайное число, $n = rand(0, ALPHSIZE-1); , или используйте mt_rand() .

Шаг 3. Получите соответствующий индекс в алфавите: $alph[n];

Прополощите и повторите шаги 2 и 3 столько раз, сколько вам нужно.

Если вам нужны сильные статистические свойства (например, равномерность), вы должны работать немного сложнее со случайным числом, но это должно вас начать. (Я думаю, что статистических свойств этого должно быть достаточно.)


Хорошо, может также указать на это:

 $alph = "012..."; function make_random_string($N) { $s = ""; for ($i = 0; $i != $N; ++$i) s .= $alph[mt_rand(0, ALPHSIZE - 1)]; return $s; } 

И вот версия, которая использует собственный алфавит:

 function make_random_custom_string($N, $alphabet) { $s = ""; for ($i = 0; $i != $N; ++$i) s .= $alphabet[mt_rand(0, strlen($alphabet) - 1)]; return $s; } 

Пример: 10 случайных нечетных цифр: make_random_custom_string(10, "13579");

Это можно сделать так:

 function RandomCode($length = 10) { $code = ''; $total = 0; do { if (rand(0, 1) == 0) { $code.= chr(rand(97, 122)); // ASCII code from **a(97)** to **z(122)** } else { $code.= rand(0, 9); // Numbers!! } $total++; } while ($total < $length); return $code; } 

Попытайтесь, это сработало для меня.

 $numLenth = 35; function make_seed_Token() { list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } srand(make_seed_Token()); $numSeed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $getNumber = ""; for($i = 0; $i < $numLenth; $i ++) { $getNumber .= $numSeed[rand(0, strlen($numSeed))]; } echo $getNumber; 

Самый простой способ сделать это с полным контролем:

 <?php $str = 'abcdefghijklmnopqrstuvwxyz01234567891011121314151617181920212223242526'; $shuffled = str_shuffle($str); $shuffled = substr($shuffled,1,30); echo $shuffled; ?> 

Измените $ str в соответствии с вашими потребностями. Я использовал алфавиты от a до z и числовые значения 1-26.

Я собрал класс PHP для генерации случайных чисел и строк PHPRandomValue ,

Он использует «mcrypt_create_iv (4, MCRYPT_DEV_URANDOM)» для генерации случайных чисел и значений. Я сделал это, работая над криптопроектом, потому что мне нужен безопасный генератор случайных значений, а mt_rand () не соответствует этому требованию. Вот пример использования

 $randomValue = new RandomValue; $randomValue->randomNumber(): = -3880998 $randomValue->randomNumberBetween(1,10): = 2 $randomValue->randomTextString(): = CfCkKDHRgUULdGWcSqP4 $randomValue->randomTextString(10): = LorPIxaeEY $randomValue->randomKey(): = C7al8tX9.gqYLf2ImVt/!$NOY79T5sNCT/6Q.$!.6Gf/Q5zpa3 $randomValue->randomKey(10): = RDV.dc6Ai/ 

Это был простой способ для меня – это генерирует строку из 15 символов –

 $alph = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $code=''; $i=0; while($i<15){ $position=rand(0,35); $code=$code.substr($alph,$position,1); $i++; } в $alph = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $code=''; $i=0; while($i<15){ $position=rand(0,35); $code=$code.substr($alph,$position,1); $i++; } 
 // A string with random letters and numbers. AZ, az, 0-9 function rand_string($length = 16) { $string = ''; for ($i = 0; $i < $length; $i++) { $die = mt_rand(1, 3); switch ($die) { case 1: $rnd = mt_rand(48, 57); break; case 2: $rnd = mt_rand(65, 90); break; case 3: $rnd = mt_rand(97, 122); break; } $string .= chr($rnd); } return $string; }