$string = "Это прекрасная строка текста из семи слов.";
$string = word_limiter($string, 4);
// Вернет: Это прекрасная строка текста…
Третьим параметром можно передать суффикс, который добавится после обрезанной строки. По умолчанию добавляется многоточие.
<?php
function character_limiter($str, $n = 500, $end_char = '…')
{
if (strlen($str) < $n)
{
return $str;
}
$str = preg_replace("/s+/", ' ', str_replace(array("rn", "r", "n"), ' ', $str));
if (strlen($str) <= $n)
{
return $str;
}
$out = "";
foreach (explode(' ', trim($str)) as $val)
{
$out .= $val.' ';
if (strlen($out) >= $n)
{
$out = trim($out);
return (strlen($out) == strlen($str)) ? $out : $out.$end_char;
}
}
}
?>