懂PHP的都知道strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。
先看这样一段代码吧(先决条件是:字符编码为UTF-8):
<?
$str = '懂PHP的都知道strlen与mb_strlen是求字符串长度的函数';
echo strlen($str)'.<br />'.mb_strlen($str,'utf-8');
?>
运行上述代码,返回值如下:
66
34
怎么样?strlen中,中文是三个字节的长度,英文则是一个字节的长度!mb_strlen中,都被计算为一字节的长度!所以,我们有时候用substr来截取UTF-8中文字符串的时候,经常会出现乱码,就是这个原因了!
下面提供一个截取UTF-8字符串的函数:
以下是PHP代码:...