PHP入門 文字列関数 文字列の長さを取得する(mb_strlen関数)
mb_strlen関数は、与えらえた文字列の長さを取得します。
構文:mb_strlen関数
mb_strlen(string $string[, ?string $encoding]):int
$string:対象の文字列
$encoding:使用する文字エンコーディング
引数$encodingは、文字列を処理する際に利用する文字エンコーディング名です。個々の関数で明示してもかまいませんが、省略時には、default_charsetパラメータで設定した既定の文字コードが使われます。mb_strlen関数は、日本語(マルチバイト文字)も正しく1文字としてカウントします。
例:
<?php
$str = '本の国123abc';
print mb_strlen($str);
英数字(半角文字)であれば1文字は1バイトで表されるので、問題ありません。しかし、日本語(マルチバイト文字)の1文字が何バイトで表されるかは、文字エンコーディングによって異なります。Shift-JISであれば1文字2バイト、UTF-8であれば1文字3バイトです。日本語混在の文字を使う場合は、マルチバイト対応の関数(mb_から始まる関数)を使用します。