PHP関数を利用して中英文文字列の長さを計算する方法

928 ワード

この例では,PHP関数を用いて中英文文字列長を計算する方法について述べる.皆さんの参考にしてください.具体的な実現方法は以下の通りである.
一般的には、英語の文字が1バイトを占め、中国語の文字gbkが2文字を占め、utf 8が3文字を占めていることが知られています.php計算文字列の長さはstrlen()関数という印象がありますが、そうではありません.文字の長さではなくバイトの長さを計算しています.では、どのようにして1文字列の文字の長さを取得しますか.そしてmb_strlen().
具体的なコードは以下の通りです.

   echo $str = 'PHP   ';  
   
  

echo strlen($str); //3*1+3*3=12 
echo mb_strlen($str, 'gb2312'); //3*1+3*2=9 
echo mb_strlen($str, 'utf-8'); //6


残念なことに、mbシリーズの関数はPHPコア関数ではなく、デフォルトでは開いていない.文字列を文字個体に分解することで、文字の個数を文字列の長さに計算する超簡単な方法もある.コードは以下の通りである.

    function _strlen($str)  
  

        preg_match_all("/./us", $str, $matches); 
        return count(current($matches)); 

 
echo _strlen("PHP ");  //6 
?>

ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.