php截取utf-8格式字符串的方法介绍及相关示例

在php里,我们常常要截取字符串。英文字符占一个字节,中文字符占两个字节,不过中文字符占两个字节是针对GBK编码来说的。而在当下国际流行的UTF8编码中,一个中文字符占3个字节。本文向大家介绍一个php截取utf-8格式字符串的函数。
举例说明:
函数truncate_utf8_string,用于截断UTF-8编码的字符串,接收三个参数,分别为要截断的字符串,截断的长度,以及截断后追加的内容,默认值为省略号...
$result = '';
先去除字符串中的HTML标签,再去除首尾空白字符,接着对其进行HTML实体解码,最后以UTF-8编码格式处理,将结果赋值给变量$string 。
$strlen = strlen ( $string );
for($i = 0; (($i < $strlen) && ($length > 0)); $i ++) {
如果,将字符串中从索引$i开始的1个字符转换为ASCII码,再将该ASCII码转换为二进制,然后用0在左边补齐8位,在这个补齐后的二进制字符串中查找字符0,如果找到,将找到的位置赋值给变量$number ,那么
if ($length < 1.0) {
break;
}
$result .= substr ( $string, $i, $number );
$length -= 1.0;
$i += $number - 1;
} else {
$result .= substr ( $string, $i, 1 );
$length -= 0.5;
}
}
$result = htmlspecialchars ( $result, ENT_QUOTES, 'UTF-8' );
if ($i < $strlen) {
$result .= $etc;
}
return $result;
}
如果需要截取utf-8格式的字符串,直接调用这个函数即可。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!