|
|
|
| Так как функция ucfirst преобразует в верхний регистр каждую первую букву, каждого следующего предложения в тексте, решил использовать альтернативную функцию mb_convert_case Прочитал в документации, там такой пример, но на экран ничего не выводистя вообще, хоть и эко стоит, хотя функции mb_strtolower и mb_strtoupper для других возможностей работают. Почему этот код не выводит ничего?
<?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; // Выведет У Мэри Был Маленький Ягненок И Она Его Очень Любила
?>
|
| |
|
|
|
|
|
|
|
для: kilogram
(15.04.2012 в 00:18)
| | Странно как-то, пришлось перекодировать сам файл index.php в ЮТФ-8, тогда только заработало. | |
|
|
|
|
|
|
|
для: kilogram
(15.04.2012 в 00:18)
| | Странно как-то, пришлось перекодировать сам файл index.php в ЮТФ-8, тогда только заработало.
<html><body>
<?php
$str = "у мэри Был маленький ягненок и она его очень любила. однажды она купила слона.";
$str = mb_convert_case($str,MB_CASE_TITLE,"UTF-8");
echo $str;
echo '<br>'.ucfirst($str);
?>
</body></html>
|
Что-то эти 2 функции не оправдали моих надежд.
Мне нужно чтоб каждая первая буква, в каждом следующем предложении начиналась с большой буквы, а они в каждом слове все с большой буквы, не подскажете какую функцию в такой ситуации использовать? | |
|
|
|
|
|
|
|
для: kilogram
(15.04.2012 в 01:06)
| | Встроенную наверно не подскажу, но можно через РВ:
<?php
$str = "у мэри был маленький ягненок и она его очень любила. однажды она купила слона. вот";
echo preg_replace_callback( "#((^|[\.\!\?]).*?)([a-zа-яё])#usi" , create_function( '$m' , 'return $m[1].mb_strtoupper($m[3],"utf-8");' ) , $str );
?>
|
| |
|
|
|