[slon]
Guest
Обрезание форматированного текста. Что делать с открытыми тегами?
Пользователь создает текст с возможность минимального ворматирования (bold, italik, links)... При выводе текста мы смотрем общую длину текста и если текст превышает, например 256 сиволов, то мы его обрезаем, ставим многоточие и линк на полный текст.
Проблема: если текст обрубается на строке, которая была выделена болдом, то мое троеточее и линк также будут написаны болдом. Как это побороть?
Я вижу два решения:
1) Примитивное - так как пользователь ограничен тремя тегами то попросту перед выводом моего троеточия закрываю эти три тега.
2) Гемороидальное - сделать парсер, который проходился бы по тексту и складывал в массив все открвтые теги, как только мы натыкаемся на закрывающий тег мы удаляем этот тег из массива, таким образом в конце, в массиве останутся только не закрытые теги.
Возможно есть более простое (элегантное) решение?
P.S. Плюс при первом раскладе, теги считаются за символы текста, что также не очень хорошо при обрезании
Пользователь создает текст с возможность минимального ворматирования (bold, italik, links)... При выводе текста мы смотрем общую длину текста и если текст превышает, например 256 сиволов, то мы его обрезаем, ставим многоточие и линк на полный текст.
Проблема: если текст обрубается на строке, которая была выделена болдом, то мое троеточее и линк также будут написаны болдом. Как это побороть?
Я вижу два решения:
1) Примитивное - так как пользователь ограничен тремя тегами то попросту перед выводом моего троеточия закрываю эти три тега.
2) Гемороидальное - сделать парсер, который проходился бы по тексту и складывал в массив все открвтые теги, как только мы натыкаемся на закрывающий тег мы удаляем этот тег из массива, таким образом в конце, в массиве останутся только не закрытые теги.
Возможно есть более простое (элегантное) решение?
P.S. Плюс при первом раскладе, теги считаются за символы текста, что также не очень хорошо при обрезании