在PHP中对中文字符串的处理与英文字符串不同,因为不同的字符编码,中文字符所占用的字节数是不一样的。下面主要介绍下中文字符串的截取和统计字符个数这两个函数。
注意:带mb的函数并不是PHP内置函数,需要修改php.ini,开启 php_mbstring。
一、字符串截取
1、函数
mb_substr() 函数返回字符串的一部分。其语法如下:
mb_substr ( string $str, int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
2、示例
<?php
echo mb_substr('abcdefghijk',0,9).'<br/>';//abcdefghi
echo mb_substr('abcdefghijk',1,5).'<br/>';//bcdef
echo mb_substr('我们都是中国人',0,9).'<br/>';//我们都是中国人
echo mb_substr('我们都是中国人',0,9,'gb2312').'<br/>';//我们都是中
echo mb_substr('我们都是中国人',0,7,'utf-8');//我们都是中国人
?>
二、统计字符个数
1、函数介绍
mb_strlen() 函数返回字符串的长度。
mb_strlen(string[, string $encoding = mb_internal_encoding() ] ))
2、示例代码
<?php
echo strlen('中国').'<br/>'; // 6
echo mb_strlen('中国','utf-8').'<br/>'; // 2
echo mb_strlen('中国','gb2312').'<br/>'; // 4
?>
字符编码是 utf-8 时,一个汉字占3个字节。