str_limit
не знает тегов HTML, поэтому использование его в строке, содержащей HTML, часто приводит к открытому тегу, который разбивает остальную часть страницы.
Например, отрывок, которыйоканчивается на <a href="http://google.co
, потому что там его обрезали, что означает, что остальная часть вашей страницы является частью тега <a>
, пока вы случайно не выдадите "
и >
снова.
Пара вариантовдоступно для вас:
- Уберите теги HTML.Я знаю, что вы хотели сохранить их, но это остается самым простым способом создания выдержки.
- Выведите все тело, но задайте ему максимальную высоту и
overflow: hidden
, чтобы скрыть остальные.Это имеет недостатки пропускной способности, поэтому, если ваши сообщения очень длинные, это может быть не лучшим подходом. - Создайте свои собственные выдержки в виде отдельного поля.Ручная работа, но вы всегда так контролируете.
- Найдите / закодируйте генератор фрагментов с поддержкой HTML.Я не знаю, какой хороший я могу рекомендовать - это сложная проблема.Вы можете попробовать сгенерировать
str_limit
ed строку и затем запустить результаты через Tidy , что может сортировать исправить недопустимый HTML.