PHPのmb_strlen関数

今日はPHPでマルチバイト文字列を扱うときにmb_strlen()について解説します!
まずは問題から!
次のようなPHPコードを見てください:
$str = “こんにちは”;
echo strlen($str);
出力されるのは「15」が「こんにちは」は5文字のはずですよね?
なぜこうなるのかというと、strlen() はバイト数を数えるからなんです。
日本語の1文字は3バイト(UTF-8の場合)なので、5文字 × 3バイト = 15バイトになるわけです。
解決策:mb_strlen() の登場!
mb_strlen() は「マルチバイト対応」の関数。文字数を正しくカウントしてくれます。
$str = “こんにちは”;
echo mb_strlen($str, ‘UTF-8’); // 出力:5
ちゃんと「5」が返ってきましたね!
構文のポイント:
mb_strlen(文字列, 文字コード);
第二引数に ‘UTF-8’ を明示することで、安心して使えます。
mbstring拡張が必要です!
mb_strlen() を使うには、PHPで mbstring という拡張モジュールが有効になっている必要があります。
まとめ:
strlen() → バイト数を返す(日本語に向かない ❌)
mb_strlen() → 文字数を返す(マルチバイト対応 ⭕
日本語、ベトナム語、中国語などを扱うなら必ず mb_strlen() を使おう!
文字コード ‘UTF-8’ を忘れずに!