我知道这个问题非常普遍,但我问以下问题(谷歌没有结果,而另一个类似于我的问题有不正确的来源:s):
获得随机6个字符的不同套接字母字符串的最佳方法是什么,例如'aWGuPk'/'pZyTFu'或类似的东西(在PHP中)?通过“最佳”,具有最短代码量和最有效率的函数?
很抱歉,如果这可能与我在SO上找不到的内容重复。
谢谢, 卡兰
答案 0 :(得分:1)
这是我使用的功能(我必须从互联网上的某处剪切并粘贴,不记得在哪里!): -
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答案 1 :(得分:0)
就个人而言,我会创建一个允许字符数组,并使用array_rand
将它们附加到字符串所需的次数:
// str_split requires PHP5
$chars = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
for ($i = 0, $str = ''; $i < 6; ++$i) {
$str .= $chars[array_rand($chars)];
}
顺便说一句,在生成将向用户显示的随机字符串时,我倾向于从字符列表中删除元音,以避免意外生成令人反感的单词。