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

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

例如,如果文本是这样的:

Hi,I would like to tell you how wonderful this is.

它将用以下代替:

Hi,I would like to …

为此,我做了一个简单的substr.问题是在UTF8中有些字符实际上是两个字符长.而且我在中间剪切一个字符时遇到了一些问题:例如,当我尝试在数据库中插入修改后的字符串时,它会崩溃.

这是我目前的功能:

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

有人知道一个方法使这个功能甚至UTF8字符?

你需要的一切都是mb_strimwidth():
http://php.net/manual/en/function.mb-strimwidth.php

例:

mb_strimwidth('Hi,I would like to tell you how wonderful this is.',15,'...','utf-8');

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。