Как обрезать текст в PHP: простые способы с примерами

Категория:

Иногда текст слишком длинный и его нужно сократить.
Это актуально для новостных лент, описаний товаров и превью статей. В PHP есть несколько способов обрезать текст: по символам, по словам, с учётом кодировки и даже с добавлением троеточия. Разберём самые удобные и безопасные методы.

Способ 1. substr() — обрезка по символам

Функция substr() обрезает строку от указанной позиции.

phpКопироватьРедактировать$text = "Пример длинного текста";
$short = substr($text, 0, 12);
echo $short; // "Пример длинн"

Недостаток: не учитывает многобайтовые символы (например, кириллицу), может «резать» буквы посередине.

Способ 2. mb_substr() — для текста на русском

Используй mb_substr(), если работаешь с кириллицей.

phpКопироватьРедактировать$text = "Пример длинного текста";
$short = mb_substr($text, 0, 12);
echo $short; // "Пример длинн"

Добавь троеточие для эстетики:

phpКопироватьРедактировать$short = mb_substr($text, 0, 12) . "...";

Способ 3. Обрезка по словам

Если не хочешь «резать» слово на полуслове, используй обрезку по словам:

phpКопироватьРедактироватьfunction cut_by_words($text, $limit = 100) {
    if (mb_strlen($text) <= $limit) return $text;
    $cut = mb_substr($text, 0, $limit);
    return mb_substr($cut, 0, mb_strrpos($cut, ' ')) . "...";
}

$text = "Это пример текста, который мы хотим обрезать по словам";
echo cut_by_words($text, 30); // "Это пример текста, который..."

Этот способ аккуратно обрывает текст на последнем полном слове.

Способ 4. strip_tags() + обрезка для HTML-текста

Если тебе нужно обрезать HTML-контент — сначала очисти его от тегов.

phpКопироватьРедактировать$html = "<p>Это <strong>важный</strong> текст</p>";
$plain = strip_tags($html);
echo mb_substr($plain, 0, 20) . "...";

Так ты избежишь обрыва HTML-тегов и ошибок отображения.

Заключение

Обрезка текста в PHP — задача простая, если знаешь правильные функции.
substr() — базовая, mb_substr() — для русского, cut_by_words() — для аккуратных превью. Добавляй strip_tags(), если работаешь с HTML. Так ты получишь понятный, чистый и безопасный фрагмент текста, готовый к выводу на сайт.