-
-
$strarray[1] = "hello";
- $strarray[2] = "123456";
- $strarray[3] = "123hello";
- $strarray[4] = "脚本学堂";
- $strarray[5] = "123程序员之家";
- $strarray[6] = "hello程序员之家";
- $strarray[7] = "123hello程序员之家";
-
- foreach ($strarray as $key->$value)
- {
- $x = mb_strlen($value,'gb2312');
- $y = strlen($value);
-
- echo $strarray[$key].' '.$x.' '.$y.'';
- }
-
- ?>
复制代码
运行结果:
hello 5 5
123456 6 6
123hello 8 8
程序员之家 2 4
123程序员之家 5 7
hello程序员之家 7 9
123hello程序员之家 10 12
php没有直接函数来判断一个字符串是否是纯英文或纯汉字以及汉英混合,只能自己写函数。要想实现此功能就必需对字符集汉字编码占位进行了解,就目前国内比较常用的字符集当属UTF8与GBK了。
UTF8每个汉字等于3个长度;
GBK每个汉字等于2个长度;
利用以上汉字与英文的差异,我们就可以利用mb_strlen函数与strlen函数分别计算出两组长度数字,然后根据规律进行运算即可判断出字符串的类型了。
UTF-8实例
-
-
/**
- * PHP判断字符串纯汉字 OR 纯英文 OR 汉英混合
- */
- echo '';
- function utf8_str($str){
- $mb = mb_strlen($str,'utf-8');
- $st = strlen($str);
- if($st==$mb)
- return '纯英文';
- if($st%$mb==0 && $st%3==0)
- return '纯汉字';
- return '汉英混合';
- }
-
- $str = '博客';
- echo '字符串:'.$str.',是'.utf8_str($str).'';
- ?>
复制代码
GBK方法
-
-
function gbk_str($str){
- $mb = mb_strlen($str,'gbk');
- $st = strlen($str);
- if($st==$mb)
- return '纯英文';
- if($st%$mb==0 && $st%2==0)
- return '纯汉字';
- return '汉英混合';
- }
- ?>
复制代码
|