CakeFest 2024: The Official CakePHP Conference

mb_detect_order

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

mb_detect_orderLit/modifie l'ordre de détection des encodages

Description

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

Remplace l'ordre de détection des encodages courant par encoding.

Liste de paramètres

encoding

encoding est un tableau, ou une liste d'encodages séparés par une virgule. Voir les encodages supportés.

Si encoding est omis ou null, mb_detect_order() retourne l'ordre de détection courant des encodages dans un tableau.

Ce paramétrage affecte les fonctions mb_detect_encoding() et mb_send_mail().

Actuellement, mbstring supporte les filtres de détections ci-dessous. Si une séquence d'octets est invalide pour l'un des filtres suivants, la détection échouera.

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

Pour ISO-8859-*, mbstring détecte toujours ISO-8859-*.

Pour UTF-16, UTF-32, UCS2 et UCS4 la détection échouera toujours.

Valeurs de retour

Lors de la définition de l'ordre de détection de codage, true est retourné en cas de succès ou false en cas d'échec.

Lors de l'obtention de l'ordre de détection de l'encodage, un tableau ordonné des encodages est retourné.

Historique

Version Description
8.0.0 encoding est désormais nullable.

Exemples

Exemple #1 Exemple avec mb_detect_order()

<?php
/* Remplace l'ordre de détection par une liste énumérée */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Remplace l'ordre de détection par un tableau */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Affiche l'ordre de détection courant */
echo implode(", ", mb_detect_order());
?>

Exemple #2 Exemple d'ordre de détection inutile

; Toujours détecté comme ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Toujours détecté comme UTF-8, depuis que les valeurs ASCII/UTF-7
; sont valides pour UTF-8
detect_order = UTF-8, ASCII, UTF-7

Voir aussi

add a note

User Contributed Notes 1 note

up
0
Anonymous
1 month 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