2011-12-14 6 views
2

Я хочу, чтобы обрезать строку в Smarty
Это сценарий:
Строка «Test ! а». Максимальный допустимый символ = 5.
Smarty получает строку.
Если я использую {$string}, я получаю желаемый результат «Тест! А»
Если я использую {$string|truncate:5:"..":true} я получаю «Test & ..»Заменить все HTML специальных символы в Smarty

Как я могу сделать усечение после HTML обугливает преобразования. Предпочитайте не делать это в php.
Я знаю о «заменить», но это будет выглядеть «| заменить .. | заменить .. | ......»

ответ

3

Вы могли бы попробовать что-то вроде:

{$string|html_entity_decode:2:"UTF-8"|truncate:5:"...":true|htmlentities:2:"UTF-8"} 
+6

Это хороший пример того, как всезнайка может быть беспорядочно –

+0

@JohnMagnolia Я больше не мог ответить –

3

Если вы используете Smarty 3.1 вы можете посмотреть на unescape модификатор.

{$string|unescape:"entity"|truncate:5} 
+0

Спасибо, но я использую Smarty 2 – lvil

1

В Smarty 2 вы можете попробовать это один

{$string|html_entity_decode|truncate:5} 
Смежные вопросы