Laravel:
function limit($value, $limit = 100, $end = "...")
{
if (mb_strwidth($value, "UTF-8") <= $limit) {
return $value;
}
return rtrim(mb_strimwidth($value, 0, $limit, "", "UTF-8")).$end;
}
Ci:
function word_limiter($str, $limit = 100, $end_char = "…")
{
if (trim($str) === "")
{
return $str;
}
preg_match("/^s*+(?:S++s*+){1,".(int) $limit."}/", $str, $matches);
if (strlen($str) === strlen($matches[0]))
{
$end_char = "";
}
return rtrim($matches[0]).$end_char;
}