Possible Duplicate:
Truncate a multibyte String to n chars
Hello,
I'm developing a site in French and I created a function that cuts string after X number of characters. It works great, but when the last character has an accent, it has the (?) instead of the character.
Here is my function
function neat_trim3($str, $n, $delim='...') {
$len = strlen($str);
if ($len > $n) {
$tocut = $len-$n;
$output = substr($str,0,-$tocut);
return $len.' - '.$output.$delim;
}
else {
return $str;
}
}
Example
$str = "C'est开发者_开发问答 une soirée privé ce soir";
echo eat_trim3($str, 15 , '...' );
// GIVES ME C'est une soir�...
The rest of the page echos the page perfectly, I can even echo the same string without the cut and it works great.
Any help appreciated.
Thanks.
Use the mb_substr
and mb_strlen
functions. It doesn't work because you are using UTF-8, which has multi-byte characters and you cut the in the middle.
精彩评论