Note: mb_strwidth is NOT returning bytes.  It's returning the width of monotype characters.  (In some languages, some characters will take up 2 character widths if displayed in monotype.)(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strwidth — 文字列の幅を返す
   文字列 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幅を取得したい文字列。
encodingencoding
パラメータには文字エンコーディングを指定します。省略した場合、もしくは 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)
Note: mb_strwidth is NOT returning bytes.  It's returning the width of monotype characters.  (In some languages, some characters will take up 2 character widths if displayed in monotype.)Important, if you're looking to trim/cut/truncate a string so that it will fit a certain byte size (for example to fit in a database field), look at:  mb_strcut()