【问题标题】:Best way to generate 6char UP/down string? PHP生成 6char UP/down 字符串的最佳方法? PHP
【发布时间】:2011-10-04 12:35:03
【问题描述】:

我知道这个问题非常普遍,但我问的是以下问题(Google 没有产生任何结果,与我类似的另一个问题的来源不正确:s):

获取随机 6 个字符的不同大小写字母字符串的最佳方法是什么,例如 'aWGuPk'/'pZyTFu' 或类似的东西(在 PHP 中)? 'best',是代码量最少、效率最高的函数?

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

谢谢, 卡兰

【问题讨论】:

标签: php string random


【解决方案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 中添加大写字符

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多