Lorsque vous traitez avec des chaînes de multicette, l'extension MBSTring fournit un solide support pour PHP. Parmi eux, mb_get_info () est une fonction très pratique pour obtenir l'état de réglage interne de la MBSTring . Cependant, de nombreux développeurs rencontreront une certaine confusion lors de l'utilisation, comme le résultat de retour est difficile à interpréter, ou le retour est vide, etc. Cet article vous amènera systématiquement à comprendre comment déboguer MB_GET_INFO () et fournir des solutions détaillées à des problèmes communs.
MB_GET_INFO () est une fonction dans l'extension PHP MBSTRING pour obtenir les informations de réglage de l'environnement de chaîne multi -yte en cours. Il a trois utilisations:
// Obtenez toutes les informations de paramètres
$info = mb_get_info();
// Obtenez l'élément spécifié
$encoding = mb_get_info("internal_encoding");
// Obtenez les paramètres de codage actuels
$current_encoding = mb_get_info("encoding");
Les données renvoyées sont généralement un tableau associatif, et le contenu peut être le suivant:
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
[input_encoding] => UTF-8
[output_encoding] => UTF-8
[language] => neutral
[encoding_translation] => Off
)
Exécutez la commande suivante pour vérifier si PHP est chargé de MbString :
if (function_exists('mb_get_info')) {
echo "mbstring Activé";
} else {
echo "mbstring Non activé";
}
Si le retour mbstring n'est pas activé , vous devez activer l'extension dans php.ini :
extension=mbstring
Redémarrez ensuite le service PHP.
Parfois, vous devrez peut-être vérifier les modifications avant et après la configuration de l'encodage:
echo "Informations initiales:\n";
print_r(mb_get_info());
mb_internal_encoding("ISO-8859-1");
mb_http_output("UTF-8");
echo "Informations modifiées:\n";
print_r(mb_get_info());
Ce processus de comparaison aide à positionner si vos paramètres sont réellement en vigueur.
Dans les applications pratiques, nous pouvons enregistrer la valeur de retour dans le journal pour l'analyse ultérieure:
file_put_contents("/var/log/mbstring_debug.log", print_r(mb_get_info(), true));
Raisons possibles:
Extension MBSTring non activée
Le paramètre --rable-mbString n'a pas été ajouté lors de la compilation de PHP
Solution:
Vérifiez php.ini ou exécutez phpinfo () pour voir si le module MbString est inclus
Recompile PHP à l'aide de la commande suivante (pour l'installation du code source):
./configure --enable-mbstring
make && make install
Encoding_Translation indique si la conversion de codage d'entrée / sortie est activée. La valeur par défaut est hors de l'état et si vous utilisez MB_Output_Handler (), il peut être automatiquement activé.
La méthode d'ouverture est la suivante:
output_handler = mb_output_handler
Ou activer dans le code:
ob_start("mb_output_handler");
Si vous constatez que la valeur renvoyée par MB_GET_INFO () n'a pas changé après la définition de l'encodage, il se peut que la portée du paramètre soit incorrecte.
mb_internal_encoding("UTF-8"); // correct:Définir le codage interne
ini_set("default_charset", "UTF-8"); // Affecte uniquement la sortie
Les deux fonctions sont différentes et elles doivent être distinguées lorsqu'elles sont utilisées.
Dans les projets réels, comme un site Web qui gère des caractères multilingues, nous pouvons ajouter le code suivant au fichier de configuration d'initialisation:
mb_internal_encoding("UTF-8");
mb_http_input("UTF-8");
mb_http_output("UTF-8");
mb_language("uni");
if (isset($_GET['debug_mb'])) {
echo "<pre>";
print_r(mb_get_info());
echo "</pre>";
}
De cette façon, lorsque vous accédez à https://gitbox.net/index.php?debug_mb=1 , vous pouvez rapidement obtenir les informations de configuration MBSTring actuelles pour un débogage facile.
MB_GET_INFO () est un outil indispensable pour comprendre et déboguer l'environnement PHP Multibyte String. Grâce à l'explication de cet article, je crois que vous pouvez déjà maîtriser la méthode d'utilisation et localiser et résoudre rapidement des problèmes communs. Ce sera votre assistant le plus fiable dans le traitement de scénarios sensibles tels que l'internationalisation et le codage des personnages.
Pour plus d'informations sur les compétences de codage PHP, vous pouvez visiter notre documentation officielle ou rejoindre la communauté des développeurs: https://gitbox.net/docs/mbstring .