文字列の長さを取得 - strlen()、mb_strlen()
当ページのリンクには広告が含まれています。
Webプログラミング言語PHPで、指定した文字列の長さを取得するstrlen関数、マルチバイト版のmb_strlen関数を紹介します。
strlen関数
int strlen ( string $string ) 指定した文字列の長さを取得します。 マルチバイト文字列の長さは正しく見積もれません。 日本語などの長さを取得したい場合は、後述するmb_strlen関数を使います。
引数 $string 長さを取得する文字列を指定します。
返り値
指定した文字列の長さをint型で返します。
サンプルコード
指定した文字列の長さを取得するサンプルコードです。
strlen( 文字列 )
<?php $string1 = "abc"; var_dump(strlen($string1)); $string2 = "入門だよ"; var_dump(strlen($string2)); ?>
実行結果です。指定した文字列「abc」の長さは正しく取得されていますが、日本語の文字列「入門だよ」は正しく取得されていないことがわかります。日本語などのマルチバイト文字列の長さを正しく見積もる場合は、mb_strlen関数を使いましょう。
int(3) int(12)
mb_strlen関数
int mb_strlen ( string $string [, string $encoding ] ) 指定した文字列の長さを取得します。 マルチバイト文字列の長さも正しく取得します。
引数 $string 長さを取得する文字列を指定します。 $encoding エンコーディングを指定します。 日本語の場合、"UTF-8"、"EUC-JP"、"SJIS"を指定します。 エンコーディングの指定を省略した場合は、 内部エンコーディング†を使用します。
返り値
指定した文字列の長さをint型で返します。
†内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring。
サンプルコード
指定した文字列(UTF-8)の長さを取得するサンプルコードです。
mb_strlen( 文字列, "UTF-8" )
<?php $string = "abc"; var_dump( strlen( $string ) ); $string1 = "入門だよ"; var_dump( mb_strlen( $string1, "UTF-8" ) ); $string2 = "PHP入門だよ"; var_dump( mb_strlen( $string2, "UTF-8" ) ); ?>
実行結果です。バイト文字、マルチバイト文字、それらが混ざった文字列の長さが正しく取得されています。
int(3) int(4) int(7)