方法一:
function is_chinese($s){ $allen = preg_match("/^[^\x80-\xff]+$/", $s); //判断是否是英文 $allcn = preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$s); //是否是中文 if($allen){ return 'allen'; }else{ if($allcn){ return 'allcn'; }else{ return 'encn'; } } }
方法二:
利用Php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文、英汉混合、还是纯汉字。简要说明如下(以上示例程序)
1、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一致,可以判断是纯英文字符串。
2、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后得0可以判断为是全汉字的字符串。
3、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后不为0,可以判断为是英汉混合的字符串。
function Check_stringType($str1) { $strA = trim($str1); $lenA = strlen($strA); $lenB = mb_strlen($strA, "utf-8"); if ($lenA === $lenB) { return "1"; //全英文 } else { if ($lenA % $lenB == 0) { return "2"; //全中文 } else { return "3"; //中英混合 } } }