mb_strwidth

文字列の幅を返す

説明

int mb_strwidth(string $string, stringnull $encoding = null)

文字列 string の幅を返します。 半角文字は 1 として、 全角文字は 2 として数えます。 東アジアの文字の長さに関する詳細は » http://www.unicode.org/reports/tr11/ を参照ください。

全角文字は次のとおりです。 U+1100-U+115F、 U+11A3-U+11A7、 U+11FA-U+11FF、 U+2329-U+232A、 U+2E80-U+2E99、 U+2E9B-U+2EF3、 U+2F00-U+2FD5、 U+2FF0-U+2FFB、 U+3000-U+303E、 U+3041-U+3096、 U+3099-U+30FF、 U+3105-U+312D、 U+3131-U+318E、 U+3190-U+31BA、 U+31C0-U+31E3、 U+31F0-U+321E、 U+3220-U+3247、 U+3250-U+32FE、 U+3300-U+4DBF、 U+4E00-U+A48C、 U+A490-U+A4C6、 U+A960-U+A97C、 U+AC00-U+D7A3、 U+D7B0-U+D7C6、 U+D7CB-U+D7FB、 U+F900-U+FAFF、 U+FE10-U+FE19、 U+FE30-U+FE52、 U+FE54-U+FE66、 U+FE68-U+FE6B、 U+FF01-U+FF60、 U+FFE0-U+FFE6、 U+1B000-U+1B001、 U+1F200-U+1F202、 U+1F210-U+1F23A、 U+1F240-U+1F248、 U+1F250-U+1F251、 U+20000-U+2FFFD、 U+30000-U+3FFFD。 他のすべての文字は半角の文字です。

パラメータ

string

幅を取得したい文字列。

encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合、もしくは null の場合は、 内部文字エンコーディングを使用します。

戻り値

文字列 string の幅を返します。

変更履歴

バージョン 説明
8.0.0 encoding は、nullable になりました。

例

例1 mb_strwidth example

<?php
var_dump(
    mb_strwidth('a'),       // LATIN SMALL LETTER A
    mb_strwidth("\u{ff41}") // FULLWIDTH LATIN SMALL LETTER A
);
?>

上の例の出力は以下となります。

int(1)
int(2)

参考

  • mb_strimwidth
  • mb_internal_encoding