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

前端之家收集整理的这篇文章主要介绍了如何在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');

猜你在找的PHP相关文章