生成6char UP / down字符串的最佳方法是什么? PHP

时间:2011-10-04 12:35:03

标签: php string random

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

获得随机6个字符的不同套接字母字符串的最佳方法是什么,例如'aWGuPk'/'pZyTFu'或类似的东西(在PHP中)?通过“最佳”,具有最短代码量和最有效率的函数?

很抱歉,如果这可能与我在SO上找不到的内容重复。

谢谢, 卡兰

2 个答案:

答案 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)];
}

顺便说一句,在生成将向用户显示的随机字符串时,我倾向于从字符列表中删除元音,以避免意外生成令人反感的单词。