[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ucwords и UTF-8
gidrosoldat
Алоха, друзья!

Столкнулся с оной проблемой.
Обрабатывая текст в UTF-8 кодировке не хотят работать функции strtolower, ucfirst и ucwords. Ай, яй, проблема с многобитовой кодировкой.

частично удалось решить проблему внедрением в файл:

mb_internal_encoding('UTF-8');
setlocale(LC_ALL, 'ru_RU.UTF-8');


а функцию strtolower заменил на mb_strtolower. ucfirst заработал сама, а вот ucwords все еще отказывается работать...
Как быть? Какие будут советы?

На всякий случай, засвечу код:

$book_title = mb_strtolower($POST['value1']);
$book_title = ucfirst($book_title);
$book_author = mb_strtolower($POST['value4']);
$book_author = ucwords($book_author);




Спустя 14 минут, 17 секунд (17.03.2011 - 20:41) Trianon написал(а):
mb_convert_case() с параметром MB_CASE_TITLE, вероятно, спасет.

Спустя 15 часов, 39 минут, 11 секунд (18.03.2011 - 12:21) gidrosoldat написал(а):
Trianon, тенкс

ucfirst, вдруг перестал работать. Или мне показалось что он работал..
вообщем сваял функцию для utf-8, может кому пригодится ))

function utf_ucfirst($string) {
$string_array = explode(' ', $string, 2);
$string_array['0'] = mb_convert_case($string_array['0'], MB_CASE_TITLE, "UTF-8");
return $string_array['0']." ".$string_array['1'];
}

Спустя 4 часа, 25 минут, 25 секунд (18.03.2011 - 16:46) Trianon написал(а):
Цитата
return $string_array['0']." ".$string_array['1'];


Это не есть гуд.
Потому что если в строке лишь одно слово и было, возникнет ошибка, и будет добавлен пробел к результату.

Корректно:
return implode(' ', $string_array);

Спустя 23 часа, 52 минуты, 44 секунды (19.03.2011 - 16:39) gidrosoldat написал(а):
Trianon и то правда, спасибо!

Спустя 1 год, 6 месяцев, 7 дней, 20 часов, 17 минут, 37 секунд (27.09.2012 - 11:56) xaocbozzz написал(а):
$txt = 'привет! Я из НАТО - убейте меня!';
$txt = mb_strtoupper(mb_substr($txt, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr($txt, 1, mb_strlen($txt), 'UTF-8');
echo $txt;

// результат:
// Привет! Я из НАТО - убейте меня!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.