Вот хочу поделится скриптом на php, данный скрипт обрезает текст. Очень удобен для вывода превью или длинных названий.
Код функции:
Можно заинклудить...
PHP код:
/**
* Умная обрезка строки
* @param string $str - исходная строка
* @param int $lenght - желаемая длина результирующей строки
* @param string $end - завершение длинной строки
* @param string $charset - кодировка
* @param string $token - символ усечения
* @return string - обрезанная строка
*/
function cutStr($str, $lenght = 100, $end = '...', $charset = 'UTF-8', $token = '~') {
$str = strip_tags($str);
if (mb_strlen($str, $charset) >= $lenght) {
$wrap = wordwrap($str, $lenght, $token);
$str_cut = mb_substr($wrap, 0, mb_strpos($wrap, $token, 0, $charset), $charset);
return $str_cut .= $end;
} else {
return $str;
}
}
PHP код:
$end = '...', //переменная $end после обрезки будет выводить троеточие.//
А теперь пример вывода данных:
PHP код:
$myrow= mysql_query("SELECT description FROM table WHERE id `id`=".(int)1 ,$db);
while ( $myrow = mysql_fetch_array( $myrow) );
$str = ''.$myrow['description'].'';//В переменную $str помещаем текст, который надо обрезать//
echo' '.cutStr($str, 20).' ' //выводим обрезанный текст, в данном случае, мы вывели из поля description 20 символов//
Преимущество данной функции, она не обрезает четко по символам, в ней учтены пробелы, а поэтому у вас на выходе не будет такого:
Специалисты брокерской компа... т.е. слово
"компании" обрезалось.
Данная функция режет так, что если нужно обрезать слово, то она его либо выводит полностью до пробела, либо не выводит. Что очень удобно, и все слова целые остаются.
Вот в принципе все, пользуйтесь.