最新消息: 新版网站上线了!!!

PHP计算字符串长度

PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。

英文字符串长度,strlen()是PHP自带的计算英文字符串的函数。

GBK字符串长度

中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。
中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。
 

  1. function abslength($str
  2.     $len = strlen($str); 
  3.     $i = 0; 
  4.     while ($i < $len
  5.     { 
  6.         if (preg_match("/^[" . chr(0xa1) . "-" . chr(0xff) . "]+$/"$str[$i])) 
  7.         { 
  8.             $i += 2; 
  9.         } 
  10.         else 
  11.         { 
  12.             $i += 1; 
  13.         } 
  14.     } 
  15.  
  16.     return $i

UTF8字符串长度

下面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的length方法,一个字符全部按 1 个长度计算。
 

  1. <?php 
  2. /** 
  3.  * 计算 UTF-8 字符串长度(忽略字节的方案) 
  4.  *  
  5.  * @param string $str 
  6.  * @return int 
  7.  */ 
  8. function strlen_utf8($str
  9.     $i = 0; 
  10.     $count = 0; 
  11.     $len = strlen($str); 
  12.     while ($i < $len
  13.     { 
  14.         $chr = ord($str[$i]); 
  15.         $count++; 
  16.         $i++; 
  17.         if ($i >= $len
  18.         { 
  19.             break
  20.         } 
  21.         if ($chr & 0x80) 
  22.         { 
  23.             $chr <<= 1; 
  24.             while ($chr & 0x80) 
  25.             { 
  26.                 $i++; 
  27.                 $chr <<= 1; 
  28.             } 
  29.         } 
  30.     } 
  31.  
  32.     return $count
  33.  
  34. $str = "http://kuitao8.com 懒人程序"
  35. echo strlen_utf8($str); 
  36. ?> 

 

转载请注明:谷谷点程序 » PHP计算字符串长度