function truncate_utf8

Truncates a UTF-8-encoded string safely to a number of characters.

Parameters

$string: The string to truncate.

$max_length: An upper limit on the returned string length, including trailing ellipsis if $add_ellipsis is TRUE.

$wordsafe: If TRUE, attempt to truncate on a word boundary. Word boundaries are spaces, punctuation, and Unicode characters used as word boundaries in non-Latin languages; see Unicode::PREG_CLASS_WORD_BOUNDARY for more information. If a word boundary cannot be found that would make the length of the returned string fall within length guidelines (see parameters $max_length and $min_wordsafe_length), word boundaries are ignored.

$add_ellipsis: If TRUE, add t('...') to the end of the truncated string (defaults to FALSE). The string length will still fall within $max_length.

$min_wordsafe_length: If $wordsafe is TRUE, the minimum acceptable length for truncation (before adding an ellipsis, if $add_ellipsis is TRUE). Has no effect if $wordsafe is FALSE. This can be used to prevent having a very short resulting string that will not be understandable. For instance, if you are truncating the string "See myverylongurlexample.com for more information" to a word-safe return length of 20, the only available word boundary within 20 characters is after the word "See", which wouldn't leave a very informative string. If you had set $min_wordsafe_length to 10, though, the function would realise that "See" alone is too short, and would then just truncate ignoring word boundaries, giving you "See myverylongurl..." (assuming you had set $add_ellipses to TRUE).

Return value

string The truncated string.

See also

\Drupal\Component\Utility\Unicode::truncate().

18 calls to truncate_utf8()
CommentFormController::submit in drupal/core/modules/comment/lib/Drupal/comment/CommentFormController.php
Overrides Drupal\Core\Entity\EntityFormController::submit().
comment_admin_overview in drupal/core/modules/comment/comment.admin.inc
Form constructor for the comment overview administration form.
DbLogTest::assertLogMessage in drupal/core/modules/dblog/lib/Drupal/dblog/Tests/DbLogTest.php
Confirms that a log message appears on the database log overview screen.
DbLogTest::doUser in drupal/core/modules/dblog/lib/Drupal/dblog/Tests/DbLogTest.php
Generates and then verifies some user events.
DefaultParser::parseFeed in drupal/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/parser/DefaultParser.php
Parses a feed and stores its items.

... See full list

File

drupal/core/includes/unicode.inc, line 193
Provides Unicode-related conversions and operations.

Code

function truncate_utf8($string, $max_length, $wordsafe = FALSE, $add_ellipsis = FALSE, $min_wordsafe_length = 1) {
  return Unicode::truncate($string, $max_length, $wordsafe, $add_ellipsis, $min_wordsafe_length);
}