mb_detect_order în PHP

Setează sau returnează lista de codări încercate, în ordine, de mb_detect_encoding.

Sintaxă
mb_detect_order(array|string|null $encoding = null): array|bool

Ce face mb_detect_order

Când mb_detect_encoding este apelată fără listă de codări, folosește lista stabilită cu mb_detect_order. Implicit, lista este ASCII, UTF-8.

Poți da lista ca tablou sau ca text separat prin virgulă. Ordinea contează: prima codare potrivită câștigă.

Parametri

Parametru Descriere
$encoding Opțional. Lista nouă de codări.

Ce returnează

Lista curentă (fără parametru) sau true după setare.

Exemple

Exemplul 1: Lista implicită și una pentru texte românești vechi

<?php
print_r(mb_detect_order());

mb_detect_order(["ASCII", "UTF-8", "ISO-8859-16"]);
echo implode(", ", mb_detect_order()) . "\n";
echo mb_detect_encoding("\xBAi");

Rezultat

Array
(
    [0] => ASCII
    [1] => UTF-8
)
ASCII, UTF-8, ISO-8859-16
ISO-8859-16

Greșeli frecvente

  • Pui o codare de un octet (de exemplu ISO-8859-16) înaintea lui UTF-8. Aproape orice text este valid într-o astfel de codare, deci detectarea nu mai ajunge niciodată la UTF-8.

Comenzi înrudite

  • mb_detect_encoding: Încearcă să ghicească în ce codare de caractere este scris un text.
  • mb_list_encodings: Returnează lista tuturor codărilor de caractere acceptate de mbstring.