PHP 8.5.0 Alpha 1 available for testing

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_orderLee/modifica el orden de detección de codificaciones

Descripción

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

Reemplaza el orden de detección de codificaciones actual por encoding.

Parámetros

encoding

encoding es un array, o una lista de codificaciones separadas por comas. Ver las codificaciones soportadas.

Si encoding es omitido o null, mb_detect_order() devuelve el orden de detección de codificaciones actual en un array.

Esta configuración afecta a las funciones mb_detect_encoding() y mb_send_mail().

Actualmente, mbstring soporta los siguientes filtros de detección. Si una secuencia de bytes es inválida para uno de los siguientes filtros, la detección fallará.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

Para ISO-8859-*, mbstring siempre detecta ISO-8859-*.

Para UTF-16, UTF-32, UCS2 y UCS4 la detección siempre fallará.

Valores devueltos

Al definir el orden de detección de codificación, true es devuelto en caso de éxito o false en caso de fallo.

Al obtener el orden de detección de codificación, un array ordenado de codificaciones es devuelto.

Historial de cambios

Versión Descripción
8.0.0 encoding ahora es nullable.

Ejemplos

Ejemplo #1 Ejemplo con mb_detect_order()

<?php
/* Reemplaza el orden de detección por una lista enumerada */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Reemplaza el orden de detección por un array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Muestra el orden de detección actual */
echo implode(", ", mb_detect_order());
?>

Ejemplo #2 Ejemplo de orden de detección innecesario

; Siempre detectado como ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Siempre detectado como UTF-8, desde que los valores ASCII/UTF-7
; son válidos para UTF-8
detect_order = UTF-8, ASCII, UTF-7

Ver también

add a note

User Contributed Notes 1 note

up
0
Anonymous
1 year ago
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.
To Top