随机用户名生成器使用字典而不是随机字符串

时间:2015-12-03 21:19:45

标签: php dictionary random

我发现了几次创建随机用户名生成器的尝试,但它们实际上只包含一组附加到字符串的随机字符。这仅适用于it really just looks awkward as it doesn't seem very human-like instead of just a set of random characters

是否有一个php库来处理从字典生成的用户名而不是随机字符生成函数

我找到的最接近的是:mudnames但问题是字典不是英文字典。

提前致谢。

3 个答案:

答案 0 :(得分:1)

嗯,你可以随时自己动手:

function get_random_username(array $dictionary, $separator = '-', $min = 2, $max = 3) {
    return implode(
        $separator,
        array_map(
            function ($key) use ($dictionary) {
                return trim($dictionary[$key]);
            },
            array_rand($dictionary, rand($min, $max))
        )
    );
}

以下是三个用法示例。第一个使用静态数组作为单词源,第二个使用fzaninotto Faker库,最后一个使用GNU / Linux字典作为单词源:

var_dump(
    get_random_username( 
        array ('foo', 'bar', 'baz', 'quux')
    ),
    get_random_username( 
        \Faker\Factory::create()->unique()->words(1000)
    ),
    get_random_username(
        file('/usr/share/dict/words')
    )
);

示例运行:

$ php gen.php
string(12) "bar-foo-quux"
string(11) "porro-magni"
string(11) "razor-edged"

答案 1 :(得分:0)

你可以建立自己的。 第一:在带有id的mysql数据库中记录一些名称。 然后:在PHP中,随机获取它们。

例如:

mysql表

id -- names
2.....John
3.....Melissa
.............
999.....Saba 

PHP代码:

    <?php
$random_id= rand(1,999); //get a random id

$sql="select*from NAMES where id='$random_id'" //then get a random name with id
//Your other codes...
?>

答案 2 :(得分:0)

生成随机用户名

$a = array(
    'key' => 'word1',
    'key2' => 'word2',

);

$random_word =  $a[array_rand($array)]; 

您还可以在使用字典后从字典中删除该单词,以便生成真正独特的随机用户名。此外,您可以添加一些带有单词的随机字符,使其更像人类。您可以导入任何有效字符。 dictonary of words to PHP array to use it.Finally你可以选择两个随机字,添加一些随机字符并生成复杂的随机用户名。