Так как функция ucfirst преобразует в верхний регистр лишь латиницу, а не кирилицу каждую первую букву, каждого следующего предложения в тексте, решил использовать альтернативную функцию mb_convert_case Прочитал в документации, там такой пример, но на экран ничего не выводистя вообще, хоть и эко стоит, хотя функции mb_strtolower и mb_strtoupper для других возможностей работают. Почему этот код не выводит ничего? Код (Text): <?php $str = "у мэри был маленький ягненок и она его очень любила"; $str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8"); echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА $str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); echo $str; // Выведет У Мэри Был Маленький Ягненок И Она Его Очень Любила ?> Добавлено спустя 22 минуты 31 секунду: Странно как-то, пришлось перекодировать сам файл index.php в ЮТФ-8, тогда только заработало. Добавлено спустя 21 минуту 26 секунд: Код (Text): <html><body> <?php $str = "у мэри Был маленький ягненок и она его очень любила. однажды она купила слона."; $str = mb_convert_case($str,MB_CASE_TITLE,"UTF-8"); echo $str; echo '<br>'.ucfirst($str); ?> </body></html> Что-то эти 2 функции не оправдали моих надежд. Мне нужно чтоб каждая первая буква, в каждом следующем предложении начиналась с большой буквы, а они в каждом слове все с большой буквы, не подскажете какую функцию в такой ситуации использовать?
Как ни странно, кодировка по умолчанию для mb_* нифига не уникод! Чтобы не подставлять всякий раз аргумент "кодировка", надо в начале работы вызвать mb_internal_encoding('utf-8') и будет счастье! Добавлено спустя 5 минут 33 секунды: Код (PHP): <?php // Это для вашего браузера header('Content-type: text/html; charset=utf-8'); // Это для всех mb_* функций mb_internal_encoding('utf-8'); $str = "у мэри Был маленький ягненок и она его очень любила. однажды она купила слона."; ?> <html> <head> <title>Хорошо то как, Машенька!</title> </head> <body> <?php echo $str; ?><br /> <?php echo mb_convert_case($str, MB_CASE_TITLE); ?><br /> </body> </html>