mb_detect_order
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки
Описание
Задает список кодировок encoding_list
для механизмов
автоматического определения кодировок в строках.
Список параметров
-
encoding_list
-
encoding_list
- массив array или строка, в которой перечислены кодировки через запятую. См. Поддерживаемые кодировки.Если
encoding_list
опущен, функция вернет текущий список кодировок в виде массива.Эта настройка влияет на работу функций 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
в случае возникновения ошибки.
Примеры
Пример #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 Example showing useless detect orders
; Always detect as ISO-8859-1 detect_order = ISO-8859-1, UTF-8 ; Always detect as UTF-8, since ASCII/UTF-7 values are ; valid for UTF-8 detect_order = UTF-8, ASCII, UTF-7
Смотрите также
- mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
- mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
- mb_http_output() - Установка/получение кодировки символов HTTP вывода
- mb_send_mail() - Отправка закодированного сообщения
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Многобайтные строки
- mb_check_encoding
- mb_convert_case
- mb_convert_encoding
- mb_convert_kana
- mb_convert_variables
- mb_decode_mimeheader
- mb_decode_numericentity
- mb_detect_encoding
- mb_detect_order
- mb_encode_mimeheader
- mb_encode_numericentity
- mb_encoding_aliases
- mb_ereg_match
- mb_ereg_replace_callback
- mb_ereg_replace
- mb_ereg_search_getpos
- mb_ereg_search_getregs
- mb_ereg_search_init
- mb_ereg_search_pos
- mb_ereg_search_regs
- mb_ereg_search_setpos
- mb_ereg_search
- mb_ereg
- mb_eregi_replace
- mb_eregi
- mb_get_info
- mb_http_input
- mb_http_output
- mb_internal_encoding
- mb_language
- mb_list_encodings
- mb_output_handler
- mb_parse_str
- mb_preferred_mime_name
- mb_regex_encoding
- mb_regex_set_options
- mb_send_mail
- mb_split
- mb_strcut
- mb_strimwidth
- mb_stripos
- mb_stristr
- mb_strlen
- mb_strpos
- mb_strrchr
- mb_strrichr
- mb_strripos
- mb_strrpos
- mb_strstr
- mb_strtolower
- mb_strtoupper
- mb_strwidth
- mb_substitute_character
- mb_substr_count
- mb_substr
Коментарии
Perhaps obvious to most everyone, but the
default filter list was shorter than I expected:
['ASCII','UTF-8'], in that order.
c. 2024, 60% of websites globally declared charset 'UTF-8'
So if you're experimenting with multibyte encodings other than UTF-8, you have to specify your detect_order, choosing from the list of implemented filters.