Ограничение строки Laravel с тегом html показывает меньше элементов, чем фактическое количество элементов - PullRequest
0 голосов
/ 14 сентября 2018

Я использую Laravel и Blade для циклического перебора некоторых элементов блога. Я хотел показать блог с HTML-тегами, а также с функцией str_limit.

Когда я пытаюсь

{!!str_limit($blog->body, 450)!!}

Показывает только 10 блогов или 11 из 22. Должны отображаться все элементы.

Если я использую {{ str_limit($blog->body, 450) }}, он показывает все, но без тегов html, я имею в виду отсутствие эффекта тега html.

1 Ответ

0 голосов
/ 14 сентября 2018

str_limit не знает тегов HTML, поэтому использование его в строке, содержащей HTML, часто приводит к открытому тегу, который разбивает остальную часть страницы.

Например, отрывок, которыйоканчивается на <a href="http://google.co, потому что там его обрезали, что означает, что остальная часть вашей страницы является частью тега <a>, пока вы случайно не выдадите " и > снова.

Пара вариантовдоступно для вас:

  • Уберите теги HTML.Я знаю, что вы хотели сохранить их, но это остается самым простым способом создания выдержки.
  • Выведите все тело, но задайте ему максимальную высоту и overflow: hidden, чтобы скрыть остальные.Это имеет недостатки пропускной способности, поэтому, если ваши сообщения очень длинные, это может быть не лучшим подходом.
  • Создайте свои собственные выдержки в виде отдельного поля.Ручная работа, но вы всегда так контролируете.
  • Найдите / закодируйте генератор фрагментов с поддержкой HTML.Я не знаю, какой хороший я могу рекомендовать - это сложная проблема.Вы можете попробовать сгенерировать str_limit ed строку и затем запустить результаты через Tidy , что может сортировать исправить недопустимый HTML.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...