Первый символ строки в верхний регистр, кириллица

28.06.2012

Предположим, что нам надо сделать так, что бы первый символ строки был в верхнем регистре, а остальные в нижнем

Кириллица

Первым делом на ум приходит использовать связку функций strtolower и ucwords, но к сожалению они работают только с латинским алфавитом. И что бы заставить их нормально работать с кириллицей, придется изрядно поскакать с бубном.

Но тут нам на помощь придёт функция mb_convert_case, она сначала переведёт все символы в нижний регистр, а потом у каждого слова, первую букву переведёт в верхний.

Пример вызовы для строки $str

$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");

Если необходимо перевести в верхний регистр только первую букву у первого слова, то можно предварительно заменить пробелы на какой либо знак (например #). А после использования функции mb_convert_case, поменять символы обратно на пробелы.