Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mbstring
Nom Défaut Modifiable Historique
mbstring.language "neutral" PHP_INI_ALL Disponible depuis PHP 4.3.0. PHP_INI_PERDIR en PHP <= 5.2.6
mbstring.detect_order NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.http_input "pass" PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.http_output "pass" PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.internal_encoding NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.script_encoding NULL PHP_INI_ALL Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.4.0. Utilisez zend.script_encoding à la place.
mbstring.substitute_character NULL PHP_INI_ALL Disponible depuis PHP 4.0.6.
mbstring.func_overload "0" PHP_INI_SYSTEM PHP_INI_PERDIR depuis PHP 4.3 jusqu'à la version 5.2.6, sinon PHP_INI_SYSTEM. Disponible depuis PHP 4.2.0.
mbstring.encoding_translation "0" PHP_INI_PERDIR Disponible depuis PHP 4.3.0.
mbstring.strict_detection "0" PHP_INI_ALL Disponible depuis PHP 5.1.2.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mbstring.language chaîne de caractères

Définit le langage utilisé par mbstring. Notez que cette option définit mbstring.internal_encoding mbstring.internal_encoding doit être placé après mbstring.language dans le fichier php.ini

mbstring.encoding_translation booléen

Active la détection et la traduction des données d'entrées HTTP vers le codage interne mbstring.

mbstring.internal_encoding chaîne de caractères

Définit l'encodage interne par défaut. Depuis PHP 5.6.0, si ce paramètre est vide, default_charset est utilisé à la place.

mbstring.http_input chaîne de caractères

Définit l'encodage de réception HTTP par défaut.

mbstring.http_output chaîne de caractères

Définit l'encodage d'affichage HTTP par défaut.

mbstring.detect_order chaîne de caractères

Définit l'ordre de détection des encodages par défaut. Voir aussi mb_detect_order().

mbstring.substitute_character chaîne de caractères

Définit l'encodage de substitution par défaut : il est utilisé pour les caractères invalides.

mbstring.func_overload chaîne de caractères

Remplace les fonctions de traitement des chaînes par les fonctions mbstring. Voir les fonctions de remplacement pour plus d'informations.

Ce paramètre ne peut être changé que depuis le fichier php.ini.

mbstring.strict_detection booléen

Active la détection stricte de l'encodage.

En accord avec » HTML 4.01 specification, les navigateurs sont supposés utiliser le même jeu de caractères lorsqu'ils soumettent un formulaire. Mais, tous les navigateurs ne le font pas. Reportez-vous à la fonction mb_http_input() pour détecter les jeux de caractères utilisés par les navigateurs.

En général, les navigateurs sont suffisamment intelligents pour détecter les jeux de caractères dans le HTML. Néanmoins, il convient de définir le paramètre charset de l'en-tête HTTP Content-Type à la valeur fournie par la fonction header() ou par l'option de configuration default_charset.

Exemple #1 Configuration de php.ini pour mbstring

; Langage par défaut
mbstring.language        = Neutral; (UTF-8) (par défaut)
mbstring.language        = English; Anglais
mbstring.language        = Japanese; Japonais

;; Jeu de caractère interne
;; Note : assurez-vous que ce jeu fonctionne avec PHP
mbstring.internal_encoding    = UTF-8

;; Activation de la conversion automatique des entrées HTTP
mbstring.encoding_translation = On

;; Jeu de caractères par défaut pour les données d'entrée HTTP
;; Note : le script ne peux pas changer cette configuration
mbstring.http_input           = pass    ; Aucune conversion.
mbstring.http_input           = auto    ; Utilise auto
                                ; "auto" est remplacé suivant mbstring.language
mbstring.http_input           = SJIS    ; Utilise SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

;;Jeu de caractères par défaut pour les données de sortie HTTP
mbstring.http_output          = pass    ; Aucune conversion
mbstring.http_output          = UTF-8   ; Utilise UTF-8

;; Ordre de détection des jeux de caractères
mbstring.detect_order         = auto    ; Utilise la détection automatique
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

;; Déterminer le jeu de caractères de substitution par défaut
mbstring.substitute_character = 12307   ; Spécifie une valeur Unicode
mbstring.substitute_character = none    ; Ne pas afficher de caractères
mbstring.substitute_character = long    ; Exemple complet : U+3000,JIS+7E7E

Exemple #2 Configuration de php.ini pour les utilisateurs de EUC-JP

;; Désactive la bufferisation de sortie
output_buffering      = Off

;; Choisit le jeu de caractères
default_charset       = EUC-JP

;; Le langage par défaut est le japonais
mbstring.language = Japanese

;; Activation de la traduction automatique des données d'entrée HTTP
mbstring.encoding_translation = On

;; Activation de la conversion automatique
mbstring.http_input   = auto

;; Convertit les sorties en EUC-JP
mbstring.http_output  = EUC-JP

;; Utilise le jeu de caractères interne EUC-JP
mbstring.internal_encoding = EUC-JP

;; Ne pas afficher les caractères invalides
mbstring.substitute_character = none

Exemple #3 Configuration de php.ini pour les utilisateurs de SJIS

;; Active la bufferisation de sortie
output_buffering     = On

;; Utilise le gestionnaire mb_output_handler pour la conversion de sortie
output_handler       = mb_output_handler

;; Choisit le jeu de caractères
default_charset      = Shift_JIS

;; Le langage par défaut est le japonais
mbstring.language = Japanese

;; Activation de la traduction automatique des données d'entrée HTTP
mbstring.http_input  = auto

;; Convertit en SJIS
mbstring.http_output = SJIS

;;Utilise le jeu de caractères interne EUC-JP
mbstring.internal_encoding = EUC-JP

;; Ne pas afficher les caractères invalides
mbstring.substitute_character = none

add a note add a note

User Contributed Notes 1 note

up
0
PRETTYGIRL NOT COMe
11 months ago
Note that you should better at least set "mbstring.internal_encoding".

Just check as below:

<?php

echo mb_internal_encoding() . '<br />';
echo
mb_regex_encoding();

?>

You might be surprised at unexpected values.

eg.

mbstring.language Japanese
;mbstring.internal_encoding (commented out showing "no value" in phpinfo() )

These two lines in "php.ini" are the same values as

mb_internal_encoding("EUC-JP");
mb_regex_encoding("EUC-JP");

in Win / Linux servers.

"mbstring.internal_encoding" defines the default encoding for "mb_" Functions such as "mb_strlen()".

It also defines the same for "mb_ereg_" Functions such as "mb_ereg()" when you don't set "mb_regex_encoding".
To Top