我想根据一些字符串(域名的前6个字母)生成唯一的用户名。
问题是域名的前6个字母可能是相同的。
考虑下表:
Domain | Username
--------------+------------
a.com | acom
google.com | google
yahoo.com | yahooc
aaaaaa.com | aaaaaa
aaaaa5.com | aaaaa5 -- Because `aaaaa5` is still unique
aaaaaab.com | aaaaa1 -- `aaaaaa` is taken, so we choose `aaaaa` + `1`
aaaaaac.com | aaaaa2
aaaaaad.com | aaaaa3
aaaaaae.com | aaaaa4
aaaaaaf.com | aaaaa6 -- We had `aaaaa5` before, so we go for `aaaaa6`
.
.
.
aaaaax.com | aaaa10
我真的不知道从哪里开始,经过一些搜索后找不到任何东西。
更新:朋友,我因为这些缺点而感到疑惑!
没什么奇怪的。就像WHMCS的用户生成系统一样!
答案 0 :(得分:0)
目前尚不清楚如何生成用户名,但这是一种获取唯一用户名的方法。希望它能让你知道从哪里开始:
修改强>
我编辑了代码,因此它生成了唯一的用户名,最多包含6个字符。 for循环仅用于演示目的。
$basename = 'username';
$usernames = array();
for ($i = 0; $i < 25; $i++) {
$username = substr($basename,0,6);
$number = 0;
while(in_array($username, $usernames)) {
$length = strlen($username)-strlen($number);
$username = substr($basename,0,$length).$number;
$number++;
}
$usernames[] = $username;
echo $username.'<br>';
}