Своя mb_ucfirst функция в PHP

Своя mb_ucfirst функция в PHP

Как-то разрабатывая очередной WordPress плагин, мне понадобился аналог PHP функции ucfirst, только в mb_* интерпретации (т. е. для много байтовых строк). Зайдя на php нет, я был озадачен, такой функции нет. Прошерстив интернет, на stackoverflow было найдено одно (а может и два) решения.

Доработав найденный код, получился следующий результат:

public function mb_ucfirst($string, $encoding = 'UTF-8')
{
	$strlen		= mb_strlen($string, $encoding);
	$first_char	= mb_substr($string, 0, 1, $encoding);
	$then		= mb_substr($string, 1, $strlen - 1, $encoding);
	return mb_strtoupper($first_char, $encoding) . mb_strtolower($then, $encoding);
}

Где:
$strlen — общая длина строки с учетом кодировки (второй параметр нашей ф-и)
$first_char — первый символ строки
$then — все остальные символы (т. е. кроме первого)

И завершается все оператором return с преобразованием первого символа в верхний регистр, а всех остальных в нижний, с учетом кодировки разумеется.

Своя mb_ucfirst функция в PHP
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *