Добавление точек в текстовое описание подстроки

У меня есть это текстовое описание, которое я использовал подстроку, чтобы ограничить до 400 символов. Я хотел бы добавить несколько точек в конце, чтобы указать, что в предложении есть что-то еще. Есть ли способ добавить указанные точки в одно и то же эхо?

echo substr('<br><p class = "color-lighter-grey">'.$rowBlog['blog_description'].'</p>', 0, 400);

Если я просто добавлю точки в конце </p>, он не будет отображаться, потому что я предполагаю, что он отсчитывается от подстроки.

Если я сделаю echo '<p>.....</p>' под кодом, точки просто перейдут на другую строку.

Как сделать так, чтобы они оставались в конце подстроки?

Добавление точек в текстовое описание подстроки

Если вы поместите тег html внутри substr() , функция может вырезать часть </p>, поместить ее за пределы функции и использовать конкатенацию: echo "<br><p class='color-lighter-grey'>" . subsrt($rowBlog['blog_description'], 0, 400) . "....</p>";

catcon 10.07.2019 04:54

Что произойдет, если ваша строка больше 400? То, как вы это сделали сейчас, включает разметку html, а не только заключенный текст. Не отрубится ли ваш тэг trainling p? Вам было бы лучше взять подстроку $rowBlog, а затем заключить ее в теги HTML. Если бы вы сделали это, вы могли бы даже тогда просто взять подстроку 390 или что-то еще и добавить к этой подстроке некоторую конечную точку, хотя в некоторых случаях они могут быть перенесены на новую строку. Возможно, вы захотите взглянуть на CSS также с многоточием, если это как-то применимо здесь.

SScotti 10.07.2019 04:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
803
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вам нужно удалить html из содержимого базы данных и включить .... перед конечным </p>

echo "<br><p class = "color-lighter-grey">";
echo substr($rowBlog['blog_description'], 0, 400);
echo strlen($rowBlog['blog_description']) > 400 ? "....</p>" : "</p>";

И, если содержимое меньше 400 символов, точки не отображаются.

Во-первых, использование HTML-кода внутри функции substr может закончиться уничтожением вашего кода. Я предлагаю вам удалить все теги HTML из строки с помощью функции strip_tags, а затем использовать функцию substr.

Я использую эту функцию в своем собственном проекте, надеюсь, это поможет

 /**
 * @param   string  $str
 * @param   int     $allow_carc
 * @param   string  $placeholder
 */
 function substr_str($str,$allow_carc,$placeholder = '...') {
    $str = strip_tags($str);
    if (mb_strlen($str) > $allow_carc) {
        $substr = mb_substr($str,0,$allow_carc,"utf-8");
        return $substr.$placeholder;
    }else{
        return preg_replace('/\s+/', ' ', $str);
    }
 }

Разве удаление всех тегов не сломает html в случае с OP?

John.M 10.07.2019 05:12

@John.M Да, я знал это, но использование substr с неизвестной длиной строки, содержащей HTML-код, совсем нехорошо. это всегда мы будем бросать некоторые ошибки синтаксического анализа. Поэтому я предложил изменить способы, которые он использует для хранения данных.

Mourad Karoudi 10.07.2019 05:16

Да, сначала ему нужно удалить html из содержимого substr.

John.M 10.07.2019 05:34

Не знаю, сработало ли это, но попробуйте

echo substr("<br><p class='color-lighter-grey'> $rowBlog['blog_description']'...'</p>", 0, 400);

Другие вопросы по теме