mb_str_split în PHP

Împarte un text în caractere (sau grupuri de caractere), fără să strice literele cu diacritice.

Sintaxă
mb_str_split(string $string, int $length = 1, ?string $encoding = null): array

Ce face mb_str_split

mb_str_split este varianta corectă a lui str_split pentru UTF-8: fiecare element al tabloului este un caracter întreg, chiar dacă ocupă mai mulți octeți.

Cu $length mai mare decât 1 obții grupuri de câte $length caractere. Un text gol dă un tablou gol.

Parametri

Parametru Descriere
$string Textul împărțit.
$length Opțional. Numărul de caractere din fiecare bucată. Implicit 1.
$encoding Opțional. Codarea textului.

Ce returnează

Un tablou cu caracterele sau grupurile de caractere.

Exemple

Exemplul 1: Literele unui cuvânt cu diacritice

<?php
print_r(mb_str_split("Țară"));
echo count(str_split("Țară")) . " bucăți cu str_split";

Rezultat

Array
(
    [0] => Ț
    [1] => a
    [2] => r
    [3] => ă
)
6 bucăți cu str_split

Exemplul 2: Inversarea corectă a unui text

<?php
$text = "știință";

echo implode("", array_reverse(mb_str_split($text)));

Rezultat

ățniitș

Exemplul 3: Frecvența literelor

<?php
$frecventa = array_count_values(mb_str_split("ățâță"));

print_r($frecventa);

Rezultat

Array
(
    [ă] => 2
    [ț] => 2
    [â] => 1
)

Greșeli frecvente

  • Rulezi codul pe un server cu PHP mai vechi de 7.4 și primești Call to undefined function mb_str_split(). Alternativa veche: preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY).

Comenzi înrudite

  • str_split: Împarte un text în bucăți de aceeași lungime și le pune într-un tablou.
  • mb_strlen: Returnează lungimea unui text în caractere, numărând corect literele cu diacritice.
  • preg_split: Împarte un text în bucăți folosind o expresie regulată ca separator.