当前位置:首页 > PHP教程 > php应用 > 列表

php 统计计算中文汉字字数代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-24 14:17:24 浏览: 评论:0 

本文章来给大家介绍一些常用见的php 统计计算中文汉字字数代码,有需要了解的朋友可进入参考.

用ASCII码判断,代码如下:

  1. <? 
  2. $str="abcdefg中华人民共和国中国人民解放军中国共产党中国人民"
  3. $num=strlen($str); //$num字串长度。 
  4. echo $num."<br>"
  5. for($i=0;$i<$num;$i++) 
  6. if(ord(substr($str,$i,1))>0xa0) $j++; 
  7. echo $j/2; //$j/2 汉字数。 
  8. ?> 

应该这样剥除所有字母数字和标点,空格,代码如下:

  1. <?php 
  2. $testStr = '我没有告诉你,你就千万不要乱guess, 这样可不good!'
  3. $testStr = eregi_replace("[[:alnum:]]|[[:punct:]]|[[:space:]]",'',$testStr); 
  4. echo($testStr); 
  5. echo ('字符串中所有中文字数为:'.mb_strlen($testStr)); 
  6. ?> 

#计算中英文混合字符串的长度,代码如下:

  1. function ccStrLen($str)  
  2. {  
  3. $ccLen=0;  
  4. $ascLen=strlen($str);  
  5. $ind=0;  
  6. $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字  
  7. $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符  
  8. if($hasCC && !$hasAsc) #只有汉字的情况  
  9. return strlen($str)/2;  
  10. if(!$hasCC && $hasAsc) #只有Ascii字符的情况  
  11. return strlen($str);  
  12. for($ind=0;$ind<$ascLen;$ind++)  
  13. {  
  14. if(ord(substr($str,$ind,1))>0xa0)  
  15. {  
  16. $ccLen++;  
  17. $ind++;  
  18. }  
  19. else  
  20. {  
  21. $ccLen++;  
  22. }  
  23. }  
  24. return $ccLen;  
  25. }  
  26. function ccStrLeft($str,$len) #从左边截取中英文混合字符串  
  27. {  
  28. $ascLen=strlen($str); if($ascLen<=$lenreturn $str;  
  29. $hasCC=ereg("[xA1-xFE]",$str); #同上  
  30. $hasAsc=ereg("[x01-xA0]",$str);  
  31. if(!$hasCCreturn substr($str,0,$len);  
  32. if(!$hasAsc)  
  33. if($len & 0x01) #如果长度是奇数  
  34. return substr($str,0,$len+$len-2);  
  35. else  
  36. return substr($str,0,$len+$len);  
  37. $cind=0;$flag=0;  
  38. while($cind<$ascLen)  
  39. {  
  40. if(ord(substr($str,$cind,1))<0xA1) $flag++;  
  41. $cind++;  
  42. }  
  43. if($flag & 0x01)  
  44. return substr($str,0,$len);  
  45. else  
  46. return substr($str,0,$len-1);  

Tags: php统计 中文汉字字数

分享到: