2016-01-27 47 views
2

我想用小寫字母抓住第一個名字,然後連接空格後的前兩個字符,最後用0到100之間的隨機數連接。 因此,如果我的名字是"Mike Test" I要輸出爲:mikete3基於全名生成隨機用戶名php

function random_username($string) { 
    $pattern = " "; 
    $firstPart = strstr(strtolower($string), $pattern, true); 
    $secondPart = substr(strstr(strtolower($string), $pattern, false), 0, 3); 
    $nrRand = rand(0, 100); 

    $username = $firstPart.$secondPart.$nrRand; 
    return $username; 
} 

echo random_username("Mike Test"); 

我的功能輸出「邁克te84」,我不知道如何刪除空間。

回答

3

試試這個,總是使用trim來移除額外的空間。

function random_username($string) { 
$pattern = " "; 
$firstPart = strstr(strtolower($string), $pattern, true); 
$secondPart = substr(strstr(strtolower($string), $pattern, false), 0,3); 
$nrRand = rand(0, 100); 

$username = trim($firstPart).trim($secondPart).trim($nrRand); 
return $username; 
} 

echo random_username("Mike Test"); 
+0

有一個較短的方式來做到這一點,少了一個調用'修剪()'。 –

0

嘗試:

function random_username($string) { 
    $name = split("[ .-]", $string); 
    $firstname = $name[0]; 
    $lastname = $name[1]; 

    $firstname = strtolower($firstname); 
    $lastname = strtolower(substr($lastname, 0, 2)); 
    $nrRand = rand(0, 100); 
    return $firstname . $lastname . $nrRand; 
} 

echo random_username("Mike Test"); 
0

簡單的辦法

$username = substr(str_replace(' ','',strtolower($name)), 0, 5).rand(1,3);