Задача, обрезать строку в UTF-8 до нужного количества символов, не обрезав последнее слово, например до 200 символов.

Code
function truncate_words($text, $limit=200)
{
  $text=mb_substr($text,0,$limit);
  /*если не пустая обрезаем до последнего пробела*/
  if(mb_substr($text,mb_strlen($text)-1,1) && mb_strlen($text)==$limit)
  {
  $textret=mb_substr($text,0,mb_strlen($text)-mb_strlen(strrchr($text,' ')));
  if(!empty($textret))
  {
  return $textret;
  }
  }
  return $text;
}


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





Ваша оценка:

Рейтинг: 5.0 Всего:1 Добавил: Михалыч

Другие новости


Поделиться ссылкой


Ссылка:
BB-code:
HTML:
Комментарии
Всего комментариев: 0