PHP 大会日本 2024

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 现在可以为空。

范例

示例 #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