Иногда приходится сталкиваться с тем что превью текста необходимо сделать из детального описания. для этого существует множество способов обрезки текста, но я решил написать свой универсальный
Чем же хорош именно эта функция? Она это делает красиво.
function substr_norm($str, $length){if (strlen($str) > $length){$symb[]['symbol'] = '!';$symb[]['symbol'] = '.';$symb[]['symbol'] = '?'; $str_new = substr($str, 0, $length); $znak = false;foreach ($symb as $key => $val){$pos = strripos($str_new, $val['symbol']);if ($pos !== false){if ($znak === false){$znak = $pos;}else if ($znak < $pos){$znak = $pos;}}} if ($znak !== false){if ($length-50 < $znak){$length = $znak+1;$str_new = substr($str, 0, $length);}else{$pos = strripos($str_new, ' ');$length = $pos;$str_new = substr($str, 0, $length).'...'; }}else{$pos = strripos($str_new, ' ');$length = $pos;$str_new = substr($str, 0, $length).'...'; } }else{$str_new = $str;}return $str_new;}







Комментарии отсутствуют