2014-05-14 70 views
-2

我想根據一些字符串(前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

你不能讓用戶決定嗎? – Mohebifar

+0

嘗試添加一些隨機數字或字母與現有的前6個字母。 –

+0

不,這是一個虛擬主機系統。這將是像WHMCS的用戶名生成系統。沒有其他的。 –

回答

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>'; 
} 
+0

謝謝,但問題是最大字符數應該是6.這使得它很難。 –

+0

我編輯了代碼,以便生成最多6個字符的唯一用戶名。 for循環僅用於演示目的。 – jazZRo