文字列の幅を取得 - mb_strwidth()
当ページのリンクには広告が含まれています。
Webプログラミング言語PHPで、指定した文字列の幅を取得するmb_strwidth関数を紹介します。
mb_strwidth関数
int mb_strwidth ( string $string [, string $encoding ] )
指定した文字列の幅を取得します。
引数 $string 幅を取得する文字列を指定します。 $encoding エンコーディングを指定します。 エンコーディングの指定を省略した場合は、 内部エンコーディング†を使用します。
返り値 指定した文字列の幅を返します。 マルチバイト文字はバイト文字の倍の幅を返します。
†内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring。
サンプルコード
指定した文字列の幅を取得するサンプルコードです。バイト文字、マルチバイト文字、バイト文字とマルチバイト文字を混合した文字列の幅を取得しています。
mb_strwidth( 文字列 ) mb_strwidth( 文字列, エンコーディング )
<?php /* 文字列の幅を取得 */ //バイト文字 $string = "PHP"; var_dump(mb_strwidth($string)); //マルチバイト文字 $string = "プログラミング入門"; var_dump(mb_strwidth($string, "UTF-8")); //混合 //混合 $string = "PHPプログラミング入門"; var_dump(mb_strwidth($string, "UTF-8")); ?>
実行結果です。バイト文字「PHP」は、文字列の幅が「3」。マルチバイト文字「プログラミング入門」は、文字数「9」、文字列の幅が「18」。混合は「PHP」の文字列の幅が「3」、「プログラミング入門」の文字列の幅が「18」なので、合わせて「21」になっています。
int(3) int(18) int(21)