abs($numberOfChars))) { return $content; } if ($numberOfChars < 0) { // cropping from the right side of the content, prepanding replacementForEllipsis $content = mb_substr($content, $numberOfChars, null, 'utf-8'); $truncatePosition = $cropToSpace ? mb_strpos($content, ' ', 0, 'utf-8') : false; return $truncatePosition > 0 ? $replacementForEllipsis . mb_substr($content, $truncatePosition, null, 'utf-8') : $replacementForEllipsis . $content; } // cropping from the left side of content, appending replacementForEllipsis $content = mb_substr($content, 0, $numberOfChars, 'utf-8'); $truncatePosition = $cropToSpace ? mb_strrpos($content, ' ', 0, 'utf-8') : false; return $truncatePosition > 0 ? mb_substr($content, 0, $truncatePosition, 'utf-8') . $replacementForEllipsis : $content . $replacementForEllipsis; } }