如何在PHP中截断UTF8字符串?

11 浏览
0 Comments

如何在PHP中截断UTF8字符串?

我的PHP代码中有一些字符串,如果它们太长,需要将其截断。

例如,如果一个文本如下所示:

嗨,我想告诉你这有多么美妙。

它会被替换为:

嗨,我想...

为此,我使用了一个简单的substr。问题是,在UTF8中,某些字符实际上是两个字符长。我遇到了一个问题,即一个字符被截断了一半:例如,当我尝试将修改后的字符串插入数据库时,它崩溃了。

这是我当前的函数:

static function short($string, $max = 255){
   if(strlen($string) >= $max){
       $string = substr($string, 0, $max - 5).'...';
   } return $string;
}

有人知道如何使这个函数适用于UTF8字符吗?

0