根据给定的域名生成唯一的用户名

时间:2014-05-14 11:21:34

标签: php string unique whmcs

我想根据一些字符串(域名的前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的用户生成系统一样!

1 个答案:

答案 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>';
}