2014-05-14 2 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