怎样用PHP检测字符串中是否包含汉字以及汉字字数

《怎样用PHP检测字符串中是否包含汉字以及汉字字数》要点:
本文介绍了怎样用PHP检测字符串中是否包含汉字以及汉字字数,希望对您有用。如果有疑问,可以联系我们。

在网站建设时,经常会需要检测一个字符串中的汉字字数或是否有汉字,或中英文混合字数。

下面这个脚本之家PHP函数就是应用在这类需求上。

/**字符串字数:适合中英混合
 * @param $str
 * @return mixed
 */
function mixStrLen($str)
{
       $cn = chinese_check($str);
       return $cn[3];
}
/**中英文字串检测——只计算字数用 mixStrLen($str)
 * @param $str
 * @return array[4]  :array(0)第一组值是汉字字数,array(1)第二组值表示“是否为全部汉字,1为是,2是部分汉字”,array(2)第三组是汉字字符数,array(3)第四组是这个字符串总字数,中英均算一个字。
 */
function chinese_check($str)
{
       $strlen = strlen($str);
       $cnNums = $charNums = $strType = 0;
       $encodelen = strlen('中');
       for($i=0;$i<$strlen;$i++){
              $chr = ord(substr($str,$i,1));
              if($chr>0xa0){
                     $i += ($encodelen-1);
                     $cnNums++ ; #有汉字,保存汉字数目
              }else{
                     $charNums++;
              }
       }

       $cnCharNums = $cnNums*$encodelen;  //字符数,只含汉字部分,
       if($cnCharNums==$strlen) $strType = 1; #全是汉字
       if($cnCharNums>0&&$cnCharNums<$strlen) $strType = 2; #全串部分含有汉字
       $strCharLen = $charNums+$cnNums;

       return array($cnNums,$strType,$cnCharNums,$strCharLen);
}

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。