生成一个5字符长的字符串0-9 az

Mor*_*rka 2 php

我需要一个php中的函数,它可以生成一个带有数字和az的5字符串长字符串

我该怎么看?

Tat*_*nen 13

其他人已经为你提供了正确的答案,但这里只是一个单行,只是为了它:

$code = substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyz'), 0, 5);
Run Code Online (Sandbox Code Playgroud)

str_shuffle随机化上面的字符串,然后substr获取该混洗字符串的前5个字母.简单.


如此答案的注释中所述,此函数仅生成仅包含唯一字符的字符串.如果有人希望字符串甚至可以"aaaaa",这里有一个小功能,只允许:

function generate($len) {
    return substr(str_shuffle(str_repeat('0123456789abcdefghijklmnopqrstuvwxyz', $len)), 0, $len);
}

echo generate(5);
Run Code Online (Sandbox Code Playgroud)

str_repeat重复0-9a-z字符串$ len次,所以每个字母对每个位置几乎都有相同的可能性.(阅读评论为什么只有"差不多")

  • 优雅的解决方案,虽然每个字符都是唯一的(例如字符串'aa111'不是可能的结果),这可能是也可能不是; OP没有具体说明. (8认同)