Обрезать строку по словам
Работа со строками довольно частая задача программиста, и бывает необходимость обрезать строку до определенной длины, но не просто по символьно с добавлением троеточия в конце, а по словам. Тоесть обрезать строку до определенной длины, но так что бы слова остались целыми.
Решается это следующим образом: строка разбивается по разделителю "пробел", и формируется массив слов, далее в цикле проходимся по массиву слов добавляем каждое слово в новый массив, при этом на каждой итерации цикла измеряем суммарную длину строки из сформированного массива слов на предидущей итерации, плюс новое слово.
И если общяя сумма длины строки больше заданной то прекращаем добавление слов в массив. На выходе получаем строку со словами разделенными пробелом, и имеющюю длину не больше заданной.
Выполняет данную обработку строки и обрезку ее по словам, следущаяя функция на PHP, которая принимает два входных параметра - строку и ее максимальную длину.
Вид функции обрезки строки по словам:
- $str = "Обрезать строку по словам Обрезать строку по словам";
- $length = 25;
- function strEx($str, $length){
- for($t=0;$t<count($str);$t++){
- if($strl<$length && $strr<$length){
- }else{
- }
- }
- }
PS. Читайте последние записи RSS Подписка на RSS

Комментарии
5 минут подумать и вот готово решение без всяких циклов массивов и т.д.
substr($string, 0, strrpos( substr($string, 0, 300), ' ') );