PHP没有直接函数来判断一个字符串是否是纯英文或纯汉字以及汉英混合,只能自己写函数。要想实现此功能就必需对字符集汉字编码占位进行了解,就目前国内比较常用的字符集当属UTF8与GBK了。
- UTF8每个汉字等于3个长度;
- GBK每个汉字等于2个长度;
利用以上汉字与英文的差异,我们就可以利用mb_strlen()
函数与strlen()
函数分别计算出两组长度数字,然后根据规律进行运算即可判断出字符串的类型了。
UTF8实例
<?php
/**
* PHP判断字符串纯汉字 or 纯英文 or 汉英混合
* 琼台博客 www.qttc.net
*/
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 utf8_str($str); // Output: 纯汉字
$str = '琼台博客 www.qttc.net'
echo utf8_str($str); // Output: 汉英混合
GBK
/**
* PHP判断字符串纯汉字 or 纯英文 or 汉英混合
* 琼台博客 www.qttc.net
*/
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 '汉英混合';
}