Position actuelle: Accueil> Derniers articles> Traiter les chaînes de multi-gobete en combinaison avec les fonctions MB_GET_INFO et MB_SUBSTR

Traiter les chaînes de multi-gobete en combinaison avec les fonctions MB_GET_INFO et MB_SUBSTR

gitbox 2025-05-11

L'extension MBSTring de PHP fournit un soutien solide lorsqu'il s'agit de personnages multi-octets (comme le chinois, le japonais et le coréen). Surtout lorsque nous voulons intercepter les chaînes en toute sécurité, MB_substr est un outil indispensable. Mais dans une utilisation réelle, de nombreuses personnes ignorent l'importance de MB_GET_INFO , ce qui peut nous aider à comprendre les paramètres de multi-gyte de dynamique actuels, évitant ainsi les erreurs de codage.

Cet article expliquera en détail comment utiliser MB_GET_INFO avec MB_SUBSTR pour s'assurer que votre fonctionnement de la chaîne multi -yte est à la fois précise et fiable.

1. Pourquoi ai-je besoin de mb_get_info?

MB_GET_INFO renvoie des informations détaillées sur les paramètres actuels de la MBSTring , tels que le codage interne ( interne_encoding ). Si nous utilisons MB_substr directement sans confirmer le codage, le code brouillé peut se produire dans différents environnements. Par conséquent, c'est une bonne habitude de comprendre la configuration de l'environnement actuelle à l'avance.

Exemple:

 <?php
// ObtenirmbstringInformations sur la configuration
$info = mb_get_info();
print_r($info);

// Sortie par exemple:
// Array
// (
//     [internal_encoding] => UTF-8
//     [http_output] => UTF-8
//     [http_input] => pass
//     ...
// )
?>

En envisageant Internal_Encoding , nous pouvons savoir quel est le codage utilisé par défaut pour le traitement de chaîne actuel.

2. Utilisez correctement MB_substr

MB_SUBSTR est spécialement conçu pour les chaînes à plusieurs octets. Son utilisation de base est la suivante:

 <?php
$string = "Bonjour,monde!";
$substring = mb_substr($string, 0, 2); // Depuis0Commencez par des personnages,Prendre2Personnages
echo $substring; // Sortir:Bonjour
?>

Si vous n'utilisez pas MB_substr mais utilisez un substr ordinaire, les caractères peuvent être tronqués car le chinois occupe plusieurs octets.

3. Comment utiliser MB_GET_INFO et MB_SUBSTR

Une bonne pratique est: confirmer et définir le codage correct avant d'exécuter MB_SUBSTR .

Par exemple:

 <?php
// Assurer le soutien environnementalUTF-8
$info = mb_get_info();
if (strtoupper($info['internal_encoding']) !== 'UTF-8') {
    mb_internal_encoding('UTF-8');
}

// Utilisez en toute sécurité maintenantmb_substr
$string = "Bienvenue à visiter https://gitbox.net/page";
$substring = mb_substr($string, 0, 6); // Prendre前6Personnages
echo $substring; // Sortir:Bienvenue à visiter
?>

De cette façon, même si le codage par défaut du serveur n'est pas UTF-8, nous pouvons nous assurer que le programme ne fera aucune erreur lors du traitement des chaînes de plusieurs sites.

4. Conseils: Détection de l'environnement MBSTRING

Dans un environnement de production, il est préférable d'ajouter une vérification simple pour s'assurer que l'extension MBSTring est installée et activée:

 <?php
if (!function_exists('mb_substr')) {
    die('Veuillez l&#39;installer d&#39;abordmbstringÉtendu!');
}
?>

Sinon, le programme peut s'écraser directement dans un environnement où l'opération multi-octets n'est pas prise en charge.

Résumer

  • MB_GET_INFO vous aide à comprendre le codage de l'environnement et à éviter les opérations aveugles.

  • MB_SUBSTR est la méthode préférée pour gérer l'interception de chaîne multipyte.

  • Avant d'intercepter officiellement la chaîne, il est préférable de confirmer et de définir le codage, comme Unified as UTF-8.

  • Faites attention à la compatibilité de l'environnement et vérifiez si l'extension MBSTring est activée.

Après avoir maîtrisé ces détails, vous n'aurez plus mal à la tête lorsque vous traitez avec des cordes chinoises, japonaises et coréennes!