2024 年 PHP 日本會議

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strwidth傳回字串的寬度

說明

mb_strwidth(字串 $string, ?字串 $encoding = null): 整數

回傳字串 string 的寬度,其中半形字元計為 1,全形字元計為 2。有關東亞字元寬度的詳細資訊,請參閱 » http://www.unicode.org/reports/tr11/

全形字元包含:U+1100-U+115FU+11A3-U+11A7U+11FA-U+11FFU+2329-U+232AU+2E80-U+2E99U+2E9B-U+2EF3U+2F00-U+2FD5U+2FF0-U+2FFBU+3000-U+303EU+3041-U+3096U+3099-U+30FFU+3105-U+312DU+3131-U+318EU+3190-U+31BAU+31C0-U+31E3U+31F0-U+321EU+3220-U+3247U+3250-U+32FEU+3300-U+4DBFU+4E00-U+A48CU+A490-U+A4C6U+A960-U+A97CU+AC00-U+D7A3U+D7B0-U+D7C6U+D7CB-U+D7FBU+F900-U+FAFFU+FE10-U+FE19U+FE30-U+FE52U+FE54-U+FE66U+FE68-U+FE6BU+FF01-U+FF60U+FFE0-U+FFE6U+1B000-U+1B001U+1F200-U+1F202U+1F210-U+1F23AU+1F240-U+1F248U+1F250-U+1F251U+20000-U+2FFFDU+30000-U+3FFFD。所有其他字元皆為半形字元。

參數

string

要被解碼的字串

encoding

encoding 參數是字元編碼。如果省略或為 null,將使用內部字元編碼值。

回傳值

字串 string 的寬度。

更新日誌

版本 說明
8.0.0 encoding 現在可以為 null。

範例

範例 #1 mb_strwidth() 範例

<?php
var_dump
(
mb_strwidth('a'), // 拉丁字母小寫 a
mb_strwidth("\u{ff41}") // 全形拉丁字母小寫 a
);
?>

以上範例會輸出

int(1)
int(2)

另請參閱

新增註釋

使用者貢獻的註釋 2 則註釋

1
匿名
17 年前
注意:mb_strwidth 並非傳回位元組數。它傳回的是等寬字元的寬度。(在某些語言中,某些字元以等寬字型顯示時會佔用 2 個字元寬度。)
0
Adam Altman
10 年前
重要提示:如果您要修剪/裁切/截斷字串以使其符合特定位元組大小(例如,以符合資料庫欄位),請參考:mb_strcut()
To Top