Exploitation des chaînes multioctets en PHP
&warn.deprecated.feature-7-2-0.removed-8-0-0;
Il est possible que l'on trouve difficile de faire fonctionner une application PHP
existante dans un environnement multioctets. Ceci est dû au fait
que la plupart des applications PHP sont écrites avec des fonctions
de chaînes de caractères standards comme la fonction
substr, qui est connue pour ne pas gérer
proprement les chaînes multioctets.
Mbstring supporte aussi la surcharge de fonctions, pour
permettre le support des chaînes multioctets sans modifier les
scripts PHP. En utilisant ce système de surcharge de fonctions,
certaines fonctions PHP seront remplacées par leur équivalent
de mbstring. Par exemple mb_substr remplacera
substr. Ce système de remplacement transparent,
permet un portage simple et efficace des applications.
Pour utiliser la surcharge de fonctions, définissez
mbstring.func_overload, dans le &php.ini;,
à une valeur positive qui représente une combinaison de masques d'octets
spécifiant les catégories de fonctions à surcharger. Il doit être défini à
1 pour surcharger la fonction mail, 2 pour les
fonctions de chaînes, 4 pour les fonctions d'expression régulières.
Par exemple, avec la valeur 7, toutes les fonctions précédentes seront
surchargées. Voici la liste complète des fonctions surchargées, avec
leur fonction de remplacement.
Fonctions de remplacement
Valeur de mbstring.func_overload
Fonction originale
Fonction de remplacement
1
mail
mb_send_mail
2
strlen
mb_strlen
2
strpos
mb_strpos
2
strrpos
mb_strrpos
2
substr
mb_substr
2
strtolower
mb_strtolower
2
strtoupper
mb_strtoupper
2
stripos
mb_stripos
2
strripos
mb_strripos
2
strstr
mb_strstr
2
stristr
mb_stristr
2
strrchr
mb_strrchr
2
substr_count
mb_substr_count
Il n'est pas recommandé d'utiliser le remplacement des fonctions mbstring
dans un contexte de per-directory, car il n'est pas
confirmé encore qu'elles sont suffisamment stables dans un environnement
de production et peuvent conduire à des résultats incohérents.