生成随机数字和字母 [英] Generating a random numbers and letters
问题描述
我可以要求一个代码来生成一个单词中的随机字母和数字吗?我知道有一个PHP函数rand(),但我不知道它是否也适用于字母.还有一个名为mt_rand()的函数,但我不知道它是如何工作的.我正计划生成这样的单词:
Can I ask for a certain code on how to generate a random letters and numbers in one word. I know there's a PHP function rand(), but I don't know if it's also applicable with letters. There's also a function called mt_rand() but I don't know how it works. I'm planning on generating a word like this one:
$randomcode = re784dfg7ert7;
你们在这个代码上有任何简单的代码吗?预先感谢!
Do you guys have any simple code on this one? Thanks in advance!
推荐答案
这是一种更广泛的方法,我不断使用它来生成随机数,字母或混合数:
This is a more extensive method that I use constantly to generate random numbers, letters or mixed:
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;
}
用法:
基本上,我在数组中有一个主函数,然后我调用辅助函数以根据length参数构建我的字符串:
Basically I have a main function with the array, then I call secondary functions to build my string based on the length parameter:
字母:
Letters:
$str = get_rand_letters(8); // Only Letters
数字:
Numbers:
$str = get_rand_numbers(8); // Only Numbers
字母数字:
AlphaNumeric:
$str = get_rand_alphanumeric(8); // Numbers and Letters
Kerrek SB 回答了此问题,但这可能有助于某人搜索更广泛,更灵活的方法.
This Question is answered by Kerrek SB, but this may help someone searching for a more extensive and flexible way.
这篇关于生成随机数字和字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!