$word = "слово";
как сделать:
$word = "словО";
Ответ
Для многобайтовых строк, таких как UTF-8 сущестуют специальные функции:
$enc = 'UTF-8';
$word = "слово";
$count = mb_strlen($word, $enc); //Узнаем количество символов в MB строке
$new_word = mb_substr($word, 0, ($count - 1), $enc);
$new_word = $new_word . mb_strtoupper(mb_substr($word,($count - 1), 1, $enc), $enc);
echo $new_word;
Результат будет: словО
Функции с приставкой mb_ учитывают что символы могут быть разного размера.
Например:
$str = 'FФ'; //Первый символ латиницей, второй кириллицей
$size = strlen($str);
//Для строки в UTF-8 вернет 3
$size = mb_strlen($str);
//Для строки в UTF-8 вернет 2
Это источник многих ошибок для начинающего программиста.
Комментариев нет:
Отправить комментарий