@No4NaMe

Как правильно вывести данные с ограничением количества символов?

Вывожу данные из бд в php
mysqli_set_charset($link, 'utf8');
  $sql = mysqli_query($link, 'SELECT `id`, `name`, `title`, `content`, `created_at` FROM `news` ORDER BY created_at DESC LIMIT 4');
  while ($result = mysqli_fetch_array($sql)) 
{
      if(strlen($result['content'])>$numchar) $srttmpend = "...";
      else $strtmpend = "";
    echo "<div class='news-item'><img class='news-img' src='/images/news_img_1.png'><div class='news-area'><div class='date'>{$result['created_at']}</div>";
    echo "<a target='_blank' href=news/".$result['name'].".html class='title'>{$result['title']}</a>";
    echo "<div class='text'>".substr($result['content'], 0, 160).$srttmpend;
    echo "</div></div></div>";
  }

Но если вывожу больше 160 символов текст обрезается и выводиться не с абзаца и не видит html теги. Как исправить?
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
@KPOT1987
Если в базе текст хранится вместе с разметкой, то, отрезая 160 символов, можно отбросить обязательный закрывающий html-тэг из-за чего вся оставшаяся страница не будет отображаться. Нужно искать конец блока (абзаца, например) и обрезать по нему или выводить полностью в блок фиксированного размера и делать overflow hidden.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы