PHP实现汉字拦截的方法综述
人们经常在自己的程序中使用截取字符串,但在中文字符串被截取时常常会遇到随机代码问题,这是一个令人头痛的问题,当中文字符串被截取时,有两种方法可以避免出现混沌码的问题。首先,您编写的函数之一很容易使用。
使用这个函数拦截没有随机代码。
*支持中文字符串截取
* /
功能msubstr($str = 0美元开始,美元,美元的长度,字符集=UTF-8
开关($字符集){
case'utf-8:char_len美元= 3;突破;
case'utf8:char_len美元= 3;突破;
默认值:char_len = 2美元;
}
小于指定长度,直接返回
如果(strlen(str)< = {($长度* $ char_len))
返回$ STR;
}
如果(function_exists(mb_substr )){
片mb_substr($str =美元,美元美元美元开始,长度,字符集);
} else if(function_exists('iconv_substr ')){
片iconv_substr($str =美元,美元美元美元开始,长度,字符集);
其他{ }
再'utf-8} = { $ / { X01 - x7f } | { XC2 - XDF } { X80 - xe0 | XBF } { } { - XeF X80 - XBF } { 2 } | {xf0 - xff } { X80 - XBF } { 3 } / ;
再'gb2312} = { $ / { X01 - x7f } | { 度- xf7 } { xA0 - xFe } / ;
再'gbk} = { $ / { X01 - x7f } | { X81后部接口- xFe } { X40 - xFe } / ;
再'big5} = { $ / { X01 - x7f } | { X81后部接口- xFe({ } - X40 x7e } | Xa1 - xFe }) / ;
preg_match_all(美元重新{ $字符集},$str,$匹配);
美元=连接(
}
如果(后缀)
返回$片;
返回$片;
}
二是一个内置的PHP函数mb_substr功能
指定要截取的字符串的编码格式可以有效地防止混沌码的出现。
解释
mb_substr字符串(字符串str,int $开始{ int $ {字符串长度,为编码、历史)
< PHP
功能substr_unicode($str,$,$ L = null){
返回连接()
preg_split( / / U
}
$;
$ = 0;从0(n)char开始
$ l = 3; 3 字符
回声substr($str,$,$ L)。;
回声mb_substr($str,$,$ L)。;
回声substr_unicode($str,$,$ L);
>
以上是本文的全部内容,希望大家能喜欢。