(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки
$encoding
= null
): array|bool
В encoding
задаётся порядок, в котором механизмы
автоматического определения кодировок будут их проверять.
encoding
encoding
- массив (array) или
строка, в которой перечислены кодировки через запятую. Смотрите
Поддерживаемые кодировки.
Если encoding
опущен, функция вернёт
текущий список кодировок в виде массива.
Эта настройка влияет на работу функций mb_detect_encoding() и mb_send_mail().
В mbstring
на данный момент реализованы следующие
фильтры для определения кодировок. Если последовательность байт в исходной
строке не будет соответствовать ни одной из перечисленных кодировок,
определение кодировки завершится неудачей.
UTF-8
, UTF-7
,
ASCII
,
EUC-JP
,SJIS
,
eucJP-win
, SJIS-win
,
JIS
, ISO-2022-JP
Кодировку ISO-8859-*
, mbstring
всегда определяет как ISO-8859-*
.
Для кодировок UTF-16
, UTF-32
,
UCS2
и UCS4
автоматическое
определение всегда будет завершаться неудачей.
При установке порядка определения кодировки, в зависимости от успешности,
возвращает true
или false
.
При получении порядка определения кодировки, возвращается отсортированный массив кодировок.
Версия | Описание |
---|---|
8.0.0 |
Теперь параметр encoding может принимать значение null .
|
Пример #1 Пример использования mb_detect_order()
<?php
/* Установка порядка определения в виде упорядоченного списка */
mb_detect_order("eucjp-win,sjis-win,UTF-8");
/* Установка списка кодировок в виде массива */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);
/* Вывод текущего списка кодировок */
echo implode(", ", mb_detect_order());
?>
Пример #2 Пример бесполезного порядка определения
; Всегда определяет как ISO-8859-1 detect_order = ISO-8859-1, UTF-8 ; Всегда определяет как UTF-8, так как ASCII/UTF-7 ; являются подмножеством UTF-8 detect_order = UTF-8, ASCII, UTF-7