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

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

Під час розробки чергового WordPress плагіна, мені знадобився аналог PHP-функції ucfirst, але в інтерпретації mb_* (тобто для багатобайтових рядків). Зайшовши на php.net, я був здивований — такої функції не існує. Проглянувши інтернет, на Stack Overflow було знайдено одне (а можливо й два) рішення.

Доопрацювавши знайдений код, вийшов наступний результат:

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, який перетворює перший символ у верхній регістр, а всі інші — у нижній, з урахуванням вказаного кодування.

Пости на схожі теми

З вашим WordPress сайтом проблеми? потрібний додатковий функціонал? нестандартний плагін чи згорнути нову сторінку?
Тоді напишіть мені через форму зворотного зв'язку, і я намагатимусь вам допомогти.

Напишіть коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *