truncate_utf8
- Versions
- 4.6
truncate_utf8($string, $len, $wordsafe = FALSE)- 4.7 – 7
truncate_utf8($string, $len, $wordsafe = FALSE, $dots = FALSE)
Truncate a UTF-8-encoded string safely.
If the end position is in the middle of a UTF-8 sequence, it scans backwards until the beginning of the byte sequence.
Use this function whenever you want to chop off a string at an unsure location. On the other hand, if you're sure that you're splitting on a character boundary (e.g. after using strpos() or similar), you can safely use substr() instead.
Parameters
$string The string to truncate.
$len An upper limit on the returned string length.
$wordsafe Flag to truncate at nearest space. Defaults to FALSE.
Return value
The truncated string.
Related topics
Code
includes/common.inc, line 1724
<?php
function truncate_utf8($string, $len, $wordsafe = FALSE) {
$slen = strlen($string);
if ($slen <= $len) {
return $string;
}
if ($wordsafe) {
$end = $len;
while (($string[--$len] != ' ') && ($len > 0)) {};
if ($len == 0) {
$len = $end;
}
}
if ((ord($string[$len]) < 0x80) || (ord($string[$len]) >= 0xC0)) {
return substr($string, 0, $len);
}
while (--$len >= 0 && ord($string[$len]) >= 0x80 && ord($string[$len]) < 0xC0) {};
return substr($string, 0, $len);
}
?>Login or register to post comments 