Обрезать строку

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

Чем же хорош именно эта функция? Она это делает красиво.
 
 
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;
}

Поделиться с сайта feramount.ru
Поделиться
Последние работы
Комментарии

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