And*_*rei 15 php string truncate utf-8
我的PHP代码中有一些字符串,如果它们太长则需要被截断.
例如,如果文本是这样的:
嗨,我想告诉你这是多么美妙.
它将取代它:
嗨,我想......
为此,我做了一个简单的事情substr.问题是在UTF8中,一些字符实际上是两个字符长.我在中间切出一个字符时遇到了一些问题:例如,当我尝试在数据库中插入修改后的字符串时,它会崩溃.
这是我目前的功能:
static function short($string, $max = 255){
if(strlen($string) >= $max){
$string = substr($string, 0, $max - 5).'...';
} return $string;
}
Run Code Online (Sandbox Code Playgroud)
有人知道一种方法,即使对于UTF8字符,这个功能也能正常工作吗?
Tim*_*mur 19
你需要的一切都是mb_strimwidth():http://php.net/manual/en/function.mb-strimwidth.php
例:
mb_strimwidth('Hi, I would like to tell you how wonderful this is.',0,15,'...','utf-8');
Run Code Online (Sandbox Code Playgroud)
尝试mb_substr():
static function short($string, $max = 255){
if(mb_strlen($string, 'utf-8') >= $max){
$string = mb_substr($string, 0, $max - 5, 'utf-8').'...';
} return $string;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9623 次 |
| 最近记录: |