分かりやすく、使いやすく。

マルチバイト文字列の文字数をカウントする

スポンサーリンク

PHP でマルチバイト文字列の文字数をカウントするには mb_strlen 関数を使用します。

php(書式)
1
$int = mb_strlen(カウント対象の文字列, 文字コード) 

第2引数の文字コードは省略もできますが、第1引数の文字列の文字コードと内部エンコーディングが一致しない場合は正しくカウントできないので、必ず指定するようにした方が良いです。

文字列カウントのサンプルコードは以下の通りです。

php(実行可能なサンプルコード)
1
2
3
4
$str = 'マルチバイトの日本語';
 
//第2引数には、第1引数に渡す文字列の文字コードを渡します。
echo '文字数→' . mb_strlen($str, 'SJIS-win'); 

上記を実行すると結果は以下の通りです。

文字数→10 

この mb_strlen 関数は半角カナやアルファベット、特殊記号などが混在していても全て1文字としてカウントします。

php(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
$ary_str = array(
                'ハンカクカナの日本語',
                'abc①②③XYZ',
                '㈱バヤシタ',
            );
 
foreach($ary_str as $str){
    //全ての文字を1文字として計算します
    echo "[" . $str . ']の文字数→' . mb_strlen($str, 'SJIS-win') . "\n";
} 

上記の実行結果は以下の通りです。

[ハンカクカナの日本語]の文字数→10
[abc①②③XYZ]の文字数→9
[㈱バヤシタ]の文字数→5 
スポンサーリンク