/*
$string - исходная строка. Обязательный параметр
$len - длина заголовка после обрезки. Обязательный параметр
$wordsafe - сохранять целые слова. Включено по умолчанию.
$dots - многоточие в конце обрезки. Выключено по умолчанию.
Пример использования:
cut_str("Буря мглою небо кроет", 13, ,true);
Вывод: Буря мглою...
*/
function cut_str($string, $len, $wordsafe = true, $dots = false)
{
$slen = strlen($string);
if ($slen <= $len) {return $string;}
if ($wordsafe) {
$end = $len;
while (($string[--$len] != ' ') && ($len > 0)) {};
if ($len == 0) {$len = $end;}
}
if ((ord($string[$len]) < 0x80) || (ord($string[$len]) >= 0xC0)) {
return substr($string, 0, $len) . ($dots ? ' ...' : '');}
while (--$len >= 0 && ord($string[$len]) >= 0x80 && ord($string[$len]) < 0xC0) {};
return substr($string, 0, $len) . ($dots ? ' ...' : '');
}