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.
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.
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.
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.
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'installer d'abordmbstringÉtendu!');
}
?>
Sinon, le programme peut s'écraser directement dans un environnement où l'opération multi-octets n'est pas prise en charge.
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!