mb_strlen関数の基本構文
与えられた文字列の文字列の長さ(文字数)の合計をカウントし取得します。
mb_strlenはstrlenの全角日本語などのマルチバイト対応版なのでマルチバイト文字も1文字と数えます。
strlenがバイト数の合計を返すのに対し、mb_strlenは人間の数えのと同じ文字数を返します。
mb_strlen ( string $string , string|null $encoding = null )
パラメータ
型 | 名前 | 初期値 | 説明 |
string | $string | null | 長さ(文字数)を取得する対象の文字列 |
string | $encoding | null | エンコーディング文字列 例) SJIS, SJIS-win, ISO-2022-JP, JIS, UTF-8 |
返り値(戻り値)
型 | 説明 | 例 |
int | 文字列の文字数の合計 |
mb_strlen関数の使い方
strlenで文字数・バイト数を取得するサンプルソースコード
$str = "abcde";
echo strlen($str) . PHP_EOL; //5と出力
echo mb_strlen($str) . PHP_EOL; //5と出力
strlenで日本語のバイト数を取得するサンプルソースコード
日本語のバイト数は使用している文字コードによって違います。
UTF-8は1文字3バイト、Shift_JIS(SJIS)なら1文字2バイトです。
$str = "あいうえお"; // 日本語(UTF-8マルチバイト)
echo strlen($str) . PHP_EOL; //15と出力
echo mb_strlen($str) . PHP_EOL; //5と出力
echo mb_strlen($str, "UTF-8") . PHP_EOL; //5と出力
strlenとmb_strlenの違い
strlenはバイト数を求めるものなのでバイト容量制限などがあるときなどにチェックしたいとき等に使えます。単純にmb_strlenは単純に文字の数を求めたいときに使います。
コメント