当我使用“substr”时,为什么我的文字显示不正确?
function limitstring($input,$number) {
if (strlen($input) > $number){
$input = substr($input, 0, $number) . '...';
}
return $input;
}
输入:
echo $row['text'];
输出:Käse
输入:
limitstring($row['text'],60);
输出: KSE ...
答案 0 :(得分:2)
在处理unicode字符串时,您应该使用多字节函数集mb_。点击此处:http://php.net/manual/en/function.mb-substr.php
答案 1 :(得分:0)
如果由于某种原因无法切换到mb_strlen()和mb_substr(),这将是正确的修复,则需要启用mbstring.func_overload配置指令。此外,并非所有常规的基于字节的字符串函数都具有多字节等价物。
请注意,这主要是一个hack,并且该指令在PHP / 7.2.0中已弃用。