PHP計算文字列長


PHPは文字列の長さを計算し、英語、GBK、UTF-8の複数の文字セットの下でPHPが文字列の長さをどのように計算するかを含む.英語文字列の長さ
strlen()はPHPが持つ英語文字列を計算する関数です.  
 
GBK文字列長
中国語文字は2文字、英語文字は1文字と計算され、中国語文字列の長さを統計できる関数です.

function abslength($str){   
$len=strlen($str);   
$i=0;   
while($i<$len)   
{   
       if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))   
       {   
         $i+=2;   
       }   
       else  
       {   
         $i+=1;   
       }   
}   
return $i;   
}  
 
UTF 8文字列長
以下で定義するstrlen_utf 8関数はUTF-8文字列の長さを統計することができますが、異なる点は、この関数はバイトを考慮していません.Javascriptの文字列のlengthメソッドに似ています.
1文字すべてを1文字の長さで計算します.

<?php 
//   :   UTF-8      (       )    
function strlen_utf8($str) {   
 $i = 0;   
 $count = 0;   
 $len = strlen ($str);   
 while ($i < $len) {   
    $chr = ord ($str[$i]);   
    $count++;   
    $i++;   
    if($i >= $len) break;   
    if($chr & 0x80) {   
       $chr <<= 1;   
       while ($chr & 0x80) {   
         $i++;   
         $chr <<= 1;   
       }   
     }   
  }   
  return $count;   
}   
$str = "www.phpq.net-PHP  ";   
echo strlen_utf8($str);   
?>