mb_detect_order

funkcja

Pobiera lub ustawia kolejność kodowań używanych przez mb_detect_encoding() do automatycznego wykrywania kodowania ciągu.

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

mb_detect_order kontroluje, w jakiej kolejności mb_detect_encoding() próbuje rozpoznać kodowanie ciągu. Wywołana bez argumentu zwraca bieżącą listę jako tablicę. Z tablicą (lub ciągiem z kodowaniami oddzielonymi przecinkami) ustawia nową kolejność i zwraca true. Kolejność ma znaczenie — mb_detect_encoding zwraca pierwsze pasujące kodowanie z listy.

<?php
declare(strict_types=1);

// Odczyt bieżącej kolejności:
print_r(mb_detect_order());
// wynik: Array ( [0] => ASCII [1] => UTF-8 )

// Ustawienie własnej kolejności (przydatne przy polskich tekstach ISO-8859-2):
mb_detect_order(['UTF-8', 'ISO-8859-2', 'ASCII']);
print_r(mb_detect_order());
// wynik: Array ( [0] => UTF-8 [1] => ISO-8859-2 [2] => ASCII )

// Teraz mb_detect_encoding() użyje tej kolejności:
$enc = mb_detect_encoding('Zażółć gęślą jaźń');
echo $enc; // wynik: UTF-8 (bo UTF-8 jest na początku listy)

Ustawiaj kolejność tak, żeby najczęściej spotykane kodowanie w Twoim projekcie było pierwsze. Dla nowoczesnych aplikacji webowych wystarczy domyślne ['ASCII', 'UTF-8'], ale przy integracji z legacy systemami warto dodać ISO-8859-2.

📘 Naucz się w lekcji →