Как верно заметил
Arik , нужно использовать мультибайтовые функции, если текст будет в кириллице. То есть ucfirst не подходит. А mb_ucfirst в php пока не входит. Поэтому так:
/**
* Мультибайтовый аналог ucfirst
* @param string Строка в мультибайтовой кодировке
* @return string Строка с первым символом, переведенным в верхний регистр
*/
if (!function_exists('mb_ucfirst') && function_exists('mb_substr')) {
function mb_ucfirst($string) {
$string = mb_strtoupper(mb_substr($string, 0, 1)) . mb_substr($string, 1);
return $string;
}
}