mb_strwidth

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

mb_strwidthВозвращает ширину строки

Описание

mb_strwidth(string $string, string|null $encoding = null): int

Возвращает ширину строки (string) 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

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Ширина строки (string) string.

Список изменений

Версия Описание
8.0.0 Теперь параметр encoding может принимать значение null.

Примеры

Пример #1 Пример использования mb_strwidth()

<?php
var_dump
(
    
mb_strwidth('a'),       // латинская строчная буква а
    
mb_strwidth("\u{ff41}"// латинская строчная буква а полной ширины
);
?>

Результат выполнения данного примера:

int(1)
int(2)

Смотрите также

  • mb_strimwidth() - Получение строки, обрезанной до заданного размера
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта

add a note add a note

User Contributed Notes 2 notes

up
2
Adam Altman
10 years ago
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()
up
2
Anonymous
16 years ago
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.)
To Top