Функция ucfirst() и кирилица в кодировке UTF-8

Версия php 5.2.8.

Для работоспособности приведённого способа надо собрать php с поддержкой Multibyte String (флаг nls в Gentoo, параметр –enable-mbstring при ручной сборке). А дальше заменяем функцию ucfirst на следующую конструкцию:

$string = mb_strtoupper(mb_substr($string, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr($string, 1, mb_strlen($string), 'UTF-8');

Источник: Функция ucfirst в PHP и кирилица в кодировке UTF-8

Дискуссия

Анвар, 22.06.2010 17:16

Есть более простой способ получения первой заглавной буквы для данного решения:

$string = mb_convert_case($string, MB_CASE_TITLE);

Прохожий, 04.01.2011 20:04

Да, ну? Тестируйте, прежде чем писать.

Makedon, 27.08.2011 01:59

Прямой путь всегда лучше велосипедного, Анвар просто забыл уточнить кодировку mb_convert_case($string, MB_CASE_TITLE, 'UTF-8');

Blake-R, 28.08.2011 10:08

Не совсем это правильный путь, поскольку будут изменяться регистры сразу всех слов в $string:

mb_convert_case('привет, мир') → 'Привет, Мир'.

Это зачастую далеко не совсем то, что надо. А для замены только первой буквы первого слова этот путь избыточен.

Enter your comment
 
 
dev/php/funkcija_ucfirst_i_kirilica_v_kodirovke_utf-8.txt · Последние изменения: 28.08.2011 10:06 От Blake-R
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
weleda косметика