[转]PHP中计算字符串长度

转载自: http://vtrtbb.iteye.com/blog/607091

  1. PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度  
  2. strlen()是PHP自带的计算英文字符串的函数。  
  3.   
  4. GBK字符串长度  
  5. 中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。 function abslength($str){  
  6. $len=strlen($str);  
  7. $i=0;  
  8. while($i<$len)  
  9. {  
  10.        if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))  
  11.        {  
  12.          $i+=2;  
  13.        }  
  14.        else  
  15.        {  
  16.          $i+=1;  
  17.        }  
  18. }  
  19. return $i;  
  20. }   
  21. UTF8字符串长度  
  22. 下面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的length方法,一个字符全部按 1 个长度计算。 <?php // 说明:计算 UTF-8 字符串长度(忽略字节的方案)   
  23. function strlen_utf8($str) {  
  24. $i = 0;  
  25. $count = 0;  
  26. $len = strlen ($str);  
  27. while ($i < $len) {  
  28. $chr = ord ($str[$i]);  
  29. $count++;  
  30. $i++;  
  31. if($i >= $lenbreak;  
  32. if($chr & 0x80) {  
  33. $chr <<= 1;  
  34. while ($chr & 0x80) {  
  35. $i++;  
  36. $chr <<= 1;  
  37. }  
  38. }  
  39. }  
  40. return $count;  
  41. }  
  42. $str = "www.phpq.net-PHP资讯";  
  43. echo strlen_utf8($str);  
  44. ?>  
posted on 2011-05-31 19:22  DavidYanXW  阅读(271)  评论(0编辑  收藏  举报