这将生成Aa-Zz
和0-9
个字符的任意随机输出字符串。
function genString($length) {
$lowercase = "qwertyuiopasdfghjklzxcvbnm";
$uppercase = "ASDFGHJKLZXCVBNMQWERTYUIOP";
$numbers = "1234567890";
$specialcharacters = "{}[];:,./<>[email protected]#";
$randomCode = "";
mt_srand(crc32(microtime()));
$max = strlen($lowercase) - 1;
for ($x = 0; $x < abs($length/3); $x++) {
$randomCode .= $lowercase{mt_rand(0, $max)};
}
$max = strlen($uppercase) - 1;
for ($x = 0; $x < abs($length/3); $x++) {
$randomCode .= $uppercase{mt_rand(0, $max)};
}
$max = strlen($specialcharacters) - 1;
for ($x = 0; $x < abs($length/3); $x++) {
$randomCode .= $specialcharacters{mt_rand(0, $max)};
}
$max = strlen($numbers) - 1;
for ($x = 0; $x < abs($length/3); $x++) {
$randomCode .= $numbers{mt_rand(0, $max)};
}
return str_shuffle($randomCode);
}
使用
$str = genString(10);
为什么你关心的是字符串的长度?长串有什么问题? – tkone
如果用户需要他们的帐户帮助,并要求他们的确认号码,那么没有30个以上的字符串会更容易,特别是如果他们有1个字符错误... – AnchovyLegend
@MHZ:我想你可以使用你现有的MD5字符串,并采取前10个字符? – houbysoft