Skip to content

Проблема с русскими символами, как сделать заглавной первую букву

С очень странной проблемой столкнулся в PHP.  Надо сделать заглавной первую букву в строке.

Функция PHP — ucfirst(), не помогла. Работает для символов латинского алфавита, но не работает для кириллицы, для русского алфавита.

 

Решение, которое работает для таких случаев.




if (!function_exists('mb_ucfirst') && extension_loaded('mbstring'))
{
 /**
 * mb_ucfirst - преобразует первый символ в верхний регистр
 * @param string $str - строка
 * @param string $encoding - кодировка, по-умолчанию UTF-8
 * @return string
 */
 function mb_ucfirst($str, $encoding='UTF-8')
 {
 $str = mb_ereg_replace('^[\ ]+', '', $str);
 $str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding).
 mb_substr($str, 1, mb_strlen($str), $encoding);
 return $str;
 }
}

 

И если требуется преобразовать строку, применяем так:

mb_ucfirst('пример');
Веб-разработка