2016-01-27 5 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

Попробуйте это, всегда используйте отделку, чтобы удалить дополнительное пространство.

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

Try:

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

Simpler путь

$username = substr(str_replace(' ','',strtolower($name)), 0, 5).rand(1,3); 
Смежные вопросы