php substr mb_substr

string substr ( string $string , int $start [, int $length ] )


1、按字节切分
2、常用于切分英文字符,切分中文常会出现乱码。

 

示例:

有php程序文件编码是utf-8,文件内容如下:

$str = "123456中国";
echo substr($str,0,7);
echo substr($str,0,9);

 
结果如下:

 

结果分析:
由于文件编码是utf-8,每个中文字符占3个字节,substr按字节切分字符串,前6个字节分别对应“123456”,第789三个字节对应字符“中”,所以,从0位开始截取长度为9的结果是“123456中”。
而0位从开始截取长度为7的子串时,字符“中”被从拆开了,从结果是“123456”,加上后面的乱码。


string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )


1、按字符切分
2、常用切分中文字符,这样可以避免出现中文乱码
3、切分中文时,需要指定编码,指定的编码须确保与当前文件编码一致。

 

示例:
有php程序文件编码是utf-8,文件内容如下:

$str = "123456中国";
echo mb_substr($str,0,8,'utf-8');

 
结果如下:

 
补充说明:
1、gbk编码下,一个中文字符占两个字节,一个英文字符占一个字节。
2、utf-8编码下,一个中文字符占三个字节,一个英文字符占一个字节。

 

http://huangqiqing123.iteye.com/blog/1975549

 

你可能感兴趣的:(PHP)