Skip to content

Instantly share code, notes, and snippets.

@marcwieland95
Created November 15, 2018 21:28
Show Gist options
  • Save marcwieland95/b267b20ad27132c4a184e0a3e70ddcf1 to your computer and use it in GitHub Desktop.
Save marcwieland95/b267b20ad27132c4a184e0a3e70ddcf1 to your computer and use it in GitHub Desktop.
<?php
/**
* Truncates the specified text to the specified length to the last whole word and
* adds ellipses to the end of the truncated string.
*
* @param string $text The text to truncate.
* @param int $length The maximum allowed length of the text.
* @return string The text if it's less than the length of the specified length or the text truncated to the specified length.
*/
public function truncate($text, $length)
{
if ($length >= \strlen($text)) {
return $text;
}
return preg_replace(
"/^(.{1,$length})(\s.*|$)/s",
'\\1...',
$text
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment