生成6char UP/down字符串的最佳方式?PHP


Best way to generate 6char UP/down string? PHP

我知道这个问题非常普遍,但我问以下问题(谷歌没有结果,另一个类似的问题来源不正确:s):

获得随机6个字符不同大小写的字母表字符串如'aWGuPk'/'pZyTFu'或类似的东西(在PHP中)的最佳方法是什么?通过"最佳",具有最短的代码量和最有效的功能?

对不起,如果这可能是重复的东西,我无法找到在SO。

谢谢,卡兰

这是我使用的函数(我一定是从互联网上的某个地方剪切和粘贴的,不记得在哪里了!):-

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中添加大写字符

就我个人而言,我会创建一个允许字符的数组,并使用array_rand将它们附加到字符串所需的次数:

// str_split requires PHP5
$chars = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
for ($i = 0, $str = ''; $i < 6; ++$i) {
    $str .= $chars[array_rand($chars)];
}

顺便说一下,当生成将显示给用户的随机字符串时,我倾向于从字符列表中删除元音字母,以避免意外生成冒犯性单词。