Только обратите внимание на это при тщательной проверке, но с именами типа Štefan Belopotočan
, в которых есть UTF8, произойдет сбой.
public static function initials(string $string) : string
{
$words = explode(' ', $string);
if (count($words) >= 2) {
return strtoupper(substr($words[0], 0, 1) . substr(end($words), 0, 1));
}
return static::makeInitialsFromSingleWord($string);
}
public static function makeInitialsFromSingleWord(string $name) : string
{
preg_match_all('#([A-Z]+)#', $name, $capitals);
if (count($capitals[1]) >= 2) {
return substr(implode('', $capitals[1]), 0, 2);
}
return strtoupper(substr($name, 0, 2));
}