php - 如何创建用于生成随机字符串的算法?

标签 php algorithm

我想生成如下随机字符串:

sssder
tvmwww
66rfdd
123123
oo007oo
1234
2020
1111
rrrr
r8r8r
uiuiu
wewewe
fefefe
abced
xyz..

具体来说,我想要一个长度为 5 到 8 个字符且易于内存的字符串。这可能吗?

最佳答案

你要找的是一个助记符字符串生成器,这里是函数:

function Mnemonic($letters = 6)
{
    $result = null;
    $charset = array
    (
        0 => array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'),
        1 => array('a', 'e', 'i', 'o', 'u'),
    );

    for ($i = 0; $i < $letters; $i++)
    {
        $result .= $charset[$i % 2][array_rand($charset[$i % 2])];
    }

    return $result;
}

已更新以允许在字符串末尾使用数字:

function Mnemonic($letters = 6, $digits = 2)
{
    $result = null;
    $charset = array
    (
        0 => array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'),
        1 => array('a', 'e', 'i', 'o', 'u'),
    );

    for ($i = 0; $i < $letters; $i++)
    {
        $result .= $charset[$i % 2][array_rand($charset[$i % 2])];
    }

    for ($i = 0; $i < $digits; $i++)
    {
        $result .= mt_rand(0, 9);
    }

    return $result;
}

关于php - 如何创建用于生成随机字符串的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313163/

相关文章:

php - 将数组插入 MySQL 数据库中的多行?

php - Html 电子邮件不使用 php 发送

php - Gettext:消息 ID 是英文文本是个好主意吗?

php - 删除网格中的行时出现奇怪的 JSON (Ext-JS 4)

algorithm - 在 n 个人中找到至多 (n/2)-1 个说谎者的最快算法

c++ - 如何转换dfs

algorithm - Anagram 生成器 - 这不是一种子集和吗?

algorithm - 冒泡排序的最佳案例

algorithm - 扩展ascii的Base64计算?

php - 使用 laravel 在垂直列中动态创建带有标题的 HTML 表?