2
Выводить с заглавной буквы в html шаблон
Автор kok, 21 янв. 2011 13:43
Сообщений в теме: 8
#1
Отправлено 21 Январь 2011 - 13:43
Подскажите как при выводе значения текстового поля в html шаблон - выводить с заглавной буквы?
Модификатор {$Nasha_kompaniya.Dolzhnost|capitalize:true} не отработал :-(
Модификатор {$Nasha_kompaniya.Dolzhnost|capitalize:true} не отработал :-(
*Свободный программер.
#2
Отправлено 21 Январь 2011 - 14:32
Стандартный модификатор capitalize в смарти криво работает с русскими буквами в кодировке utf-8.
Специально для вас в программу добавлена функция, mb_ucfirst.
1. обновите дистрибутив
2. используте в смарти как {$Nasha_kompaniya.Dolzhnost|mb_ucfirst}
Специально для вас в программу добавлена функция, mb_ucfirst.
1. обновите дистрибутив
2. используте в смарти как {$Nasha_kompaniya.Dolzhnost|mb_ucfirst}
#3
Отправлено 21 Январь 2011 - 15:22
Спасибо!
*Свободный программер.
#4
Отправлено 21 Январь 2011 - 16:45
Analitic (21.1.2011, 14:32) писал:
...Специально для вас в программу добавлена функция, mb_ucfirst...
А может в этой ф-ии изменить строку:
$string = mb_strtoupper(mb_substr($string, 0, 1, "UTF-8"), "UTF-8").mb_substr($string, 1, mb_strlen($string), "UTF-8" );
на такую?
$string = preg_replace( '/^(\S)(.*)$/eu', "mb_strtoupper('\\1', 'UTF-8').mb_strtolower('\\2', 'UTF-8')", $string );
Ведь так действительно будет заглавным только первый символ.
*Свободный программер.
#6
Отправлено 26 Январь 2011 - 17:03
Analitic (24.1.2011, 10:58) писал:
В чем разница? на примерах?
Ввели в поле значение: "пРИвет"
1. вариант выведет: "ПРИвет"
$string = mb_strtoupper(mb_substr($string, 0, 1, "UTF-8"), "UTF-8").mb_substr($string, 1, mb_strlen($string), "UTF-8" );
2. вариант выведет: "Привет"
$string = preg_replace( '/^(\S)(.*)$/eu', "mb_strtoupper('\\1', 'UTF-8').mb_strtolower('\\2', 'UTF-8')", $string );
*Свободный программер.
#7
Отправлено 26 Январь 2011 - 18:01
Почему вы считаете что ваш вариант более правильный?
Ввели в поле значение: компания OOO "Позитив"
1. вариант выведет: "Компания OOO "Позитив" "
$string = mb_strtoupper(mb_substr($string, 0, 1, "UTF-8"), "UTF-8").mb_substr($string, 1, mb_strlen($string), "UTF-8" );
2. вариант выведет: "Компания ооо "позитив" "
налицо порча символов: ООО "П
Ввели в поле значение: компания OOO "Позитив"
1. вариант выведет: "Компания OOO "Позитив" "
$string = mb_strtoupper(mb_substr($string, 0, 1, "UTF-8"), "UTF-8").mb_substr($string, 1, mb_strlen($string), "UTF-8" );
2. вариант выведет: "Компания ооо "позитив" "
налицо порча символов: ООО "П
#8
Отправлено 26 Январь 2011 - 18:05
Если нужен понижающий регистр, можно использовать |mb_strtolower|mb_ucfirst
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных