這將生成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