Верх страницы
Обложка к записи Усечение строки до нужной длины на PHP
Время для прочтения: 0 мин. 0 сек.

Усечение строки до нужной длины на PHP

Чтобы усечь длинную строку до нужно длины, не разрывая слов на части, я обычно использую следующий сниппет на PHP.

/**
 * Умная обрезка строки
 * @param string $str - исходная строка
 * @param int $lenght - желаемая длина результирующей строки
 * @param string $end - завершение длинной строки
 * @param string $charset - кодировка
 * @param string $token - символ усечения
 * @return string - обрезанная строка
 */
function cutStr($str, $lenght = 100, $end = ' …', $charset = 'UTF-8', $token = '~') {
    $str = strip_tags($str);
    if (mb_strlen($str, $charset) >= $lenght) {
        $wrap = wordwrap($str, $lenght, $token);
        $str_cut = mb_substr($wrap, 0, mb_strpos($wrap, $token, 0, $charset), $charset);	
        return $str_cut .= $end;
    } else {
        return $str;
    }
}

Вызывается так:

$str = 'Исходная строка для усечения';
echo cutStr($str, 10);
// Получим "Исходная ..."

Ссылки

Комментарии
Подписаться
Уведомить о
guest

8 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Василий
12 лет назад

Спасибо, за замечательный сниппет. Штук десять разных способов испробовал. Ваш заработал как надо. Еще раз спасибо.

Алексей
Алексей
12 лет назад

не подскажите как из тега the_title(); вырезать только английский текст а русский оставить
например:
есть заголовок поста «Вечнозеленое дерево ель — spruce»
необходимо в конце поста в ссылке вывести только «Вечнозеленое дерево ель»

kosmom
kosmom
10 лет назад

Функция работает не до конца правильно. Ее попросили обрезать до 10 символов, а она вернула 12

А за идею спасибо

mihdan
10 лет назад
Ответить на  kosmom

Задача стояла именно обрезка по словам с примерной длиной, приблизительно равной указанному количеству символов

Andrey
Andrey
8 лет назад

Благодарю!!!

Предыдущая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Symfony, Laravel, Moonshine, фильмы и сериалы