Чтобы убедиться, что он работает на других языках, неплохо было бы реализовать UTF-8. Я использую это доказательство воды для любых языков в моих установках WordPress.
$str = mb_ucfirst($str, 'UTF-8', true);
Это первая заглавная буква и все остальные строчные. Если для третьего аргумента установлено значение false (по умолчанию), остальная часть строки не обрабатывается. Однако кто-то здесь может предложить аргумент для повторного использования самой функции и mb прописными буквами каждого слова после первого, чтобы получить более точный ответ на вопрос.
// Extends PHP
if (!function_exists('mb_ucfirst')) {
function mb_ucfirst($str, $encoding = "UTF-8", $lower_str_end = false) {
$first_letter = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding);
$str_end = "";
if ($lower_str_end) {
$str_end = mb_strtolower(mb_substr($str, 1, mb_strlen($str, $encoding), $encoding), $encoding);
} else {
$str_end = mb_substr($str, 1, mb_strlen($str, $encoding), $encoding);
}
$str = $first_letter . $str_end;
return $str;
}
}
/ Лундман