PHP 8.4.1 Released!

mb_detect_order

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

mb_detect_orderEstablece/obtiene el orden de detección de codificaciones de caracteres

Descripción

mb_detect_order(mixed $encoding_list = mb_detect_order()): mixed

Establece el orden de detección automática de la codificación de caracteres a encoding_list.

Parámetros

encoding_list

encoding_list es un array o una lista de codificaciones de caracteres separadas por comas. Véanse las codificaciones admitidas.

Si se omite encoding_list, devolverá el orden actual de detección de las codificaciones de caracteres como un array.

Este parámetro afecta a mb_detect_encoding() y a mb_send_mail().

mbstring actualmente implementa los siguientes filtros de detección de codificaciones. Si existiera una secuencia de bytes inválida para las siguientes codificaciones, la detección de la codificación fallará.

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

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

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

Valores devueltos

Al establecer el orden de detección de codificación, se devuelve true en caso de éxito o false en caso de fallo.

Al obtener el orden de detección de codificación, se devuelve un array ordenado con las codificaciones.

Ejemplos

Ejemplo #1 Ejemplo de mb_detect_order()

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

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

/* Mostrar el orden de detección en uso */
echo implode(", ", mb_detect_order());
?>

Ejemplo #2 Ejemplo mostrando un orden de detección inútil

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

; Siempre es detectado como UTF-8, ya 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
1
Anonymous
9 months 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