mb_strwidth în PHP

Returnează lățimea de afișare a unui text: caracterele asiatice late contează dublu.

Sintaxă
mb_strwidth(string $string, ?string $encoding = null): int

Ce face mb_strwidth

În terminale și fonturi monospațiate, caracterele chinezești, japoneze sau coreene ocupă cât două litere obișnuite. mb_strwidth numără literele obișnuite (inclusiv cele cu diacritice) cu 1 și caracterele late cu 2.

Este folosită împreună cu mb_strimwidth pentru alinierea textului în tabele afișate în terminal.

Parametri

Parametru Descriere
$string Textul măsurat.
$encoding Opțional. Codarea textului.

Ce returnează

Lățimea de afișare.

Exemple

Exemplul 1: Lățime, caractere și octeți

<?php
foreach (["Iași", "東京", "Tokyo 東京"] as $text) {
    echo "$text: lățime " . mb_strwidth($text) . ", caractere " . mb_strlen($text) . ", octeți " . strlen($text) . "\n";
}

Rezultat

Iași: lățime 4, caractere 4, octeți 5
東京: lățime 4, caractere 2, octeți 6
Tokyo 東京: lățime 10, caractere 8, octeți 12

Greșeli frecvente

  • Folosești mb_strwidth pentru a număra caracterele. Pentru texte cu caractere asiatice rezultatul diferă; numărul de caractere îl dă mb_strlen.

Comenzi înrudite

  • mb_strimwidth: Scurtează un text la o lățime dată și adaugă un marcaj la final, de exemplu „…”.
  • mb_strlen: Returnează lungimea unui text în caractere, numărând corect literele cu diacritice.
  • mb_str_pad: Completează un text până la o lungime dată, numărând corect caracterele cu diacritice.