可能的重复项:
将多字节字符串截断为 n 个字符
你好
我正在开发一个法语网站,我创建了一个函数,可以在 X 个字符后剪切字符串。 它工作得很好,但是当最后一个字符有重音时,它有 (?) 而不是字符。
这是我的函数
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;
}
}
例
$str = "C'est une soirée privé ce soir";
echo eat_trim3($str, 15 , '...' );
// GIVES ME C'est une soir�...
页面的其余部分完美地回显了页面,我甚至可以在没有剪切的情况下回显相同的字符串,效果很好。
任何帮助表示赞赏。
谢谢。
使用 mb_substr
和 mb_strlen
函数。它不起作用,因为您使用的是 UTF-8,它具有多字节字符,并且您在中间剪切了。