Position actuelle: Accueil> Derniers articles> Comment combiner mb_encode_numericalentity avec des expressions régulières pour gérer des caractères ou un texte spécifiques?

Comment combiner mb_encode_numericalentity avec des expressions régulières pour gérer des caractères ou un texte spécifiques?

gitbox 2025-09-11
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Un code préfixe non pertinent</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Ce n&#39;est que le code préfixe,N&#39;a rien à voir avec le contenu de l&#39;article"</span></span><span>;
}
</span><span><span class="hljs-variable">$dummyVar</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>();

</span><span><span class="hljs-meta">?></span></span><span>

<hr>

</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>Comment combiner mb_encode_numericentity et des expressions régulières pour gérer des caractères ou un texte spécifiques?</h1>"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>Traitement des caractères multilingue(Comme en chinois、japonais、Coréen, etc.)heure,PHP Fourni <code>mb_encode_numericentity
" ; Echo "

Où:

"
; écho "
    "
; écho "
  • \ $ Str: La chaîne à convertir
  • "
    ; écho "
  • \ $ convmap: convertir le tableau de carte, formaté comme [start, end, offset, masque]
  • "
    ; écho "
  • \ $ Encoding: Encoding de caractères, par défaut 'utf-8'
  • "
    ; écho "" ; écho "

    Par exemple, nous voulons convertir tous les caractères chinois en entités HTML:

    "
    ; écho "
    \ $ convmap = [0x4e00, 0x9fff, 0, 0xffff];
    \ $ str = &#39;Tester chinois&#39;;
    \ $ encodé = mb_encode_numericalEntity (\ $ str, \ $ convmap, &#39;utf-8&#39;);
    echo \ $ encodé; // tester chinois
    "
    ;
    écho "

    2. Les expressions régulières correspondent aux caractères spécifiques

    "
    ; écho "

    Par des expressions régulières, nous pouvons filtrer le texte dont nous nous soucions. Par exemple, ne correspondent que des caractères chinois:

    "
    ; écho "
    \ $ str = &#39;Hello Test World Chinese&#39;;
    preg_match_all (&#39;/ [\ x {4e00} - \ x {9fff}] + / u&#39;, \ $ str, \ $ correspond);
    print_r (\ $ correspond [0]); // Array ([0] => test [1] => chinois)
    
    "
    ;
    Echo "

    3. Combinaison MB_ENCODE_NUMERICALENTITY et Expressions régulières

    "
    ; écho "

    Si nous voulons seulement convertir les entités numériques pour correspondre aux caractères chinois:

    "
    ; écho "
    \ $ convmap = [0x4e00, 0x9fff, 0, 0xffff];
    \ $ str = &#39;Hello Test World Chinese&#39;;
    
    // Utilisez une correspondance régulière preg_match_all (&#39;/ [\ x {4e00} - \ x {9ffff}] + / u&#39;, \ $ str, \ $ correspond);
    
    // Traversez le résultat correspondant et le remplacez par entité foreach (\ $ correspond [0] comme \ $ correspond) {
        \ $ encodé = mb_encode_numericalEntity (\ $ correspond, \ $ convmap, &#39;utf-8&#39;);
        \ $ str = str_replace (\ $ correspond, \ $ encodé, \ $ str);
    }
    
    echo \ $ str; // bonjour test world chinois
    "
    ;
    echo "

    4. Scénarios d'application pratiques

    "
    ; écho "

    La façon de combiner mb_encode_numericality et les expressions régulières est très adaptée aux scénarios suivants:

    "
    ; écho "
      "
    ; écho "
  • Échappez en toute sécurité certains caractères spéciaux dans la sortie HTML pour éviter les brouettes ou les XS.
  • "
    ; écho "
  • Lors du traitement du contenu multilingue, seuls les caractères de la langue spécifiés sont convertis.
  • "
    ; écho "
  • Lorsque le texte est analysé ou stocké, convertissant des caractères spécifiques en un format unifié.
  • "
    ; écho "" ; écho "

    Résumé

    "
    ; écho "

    Filtrez des caractères spécifiques à travers des expressions régulières, puis utilisez MB_Encode_numericalentity pour la conversion, vous pouvez contrôler avec précision quels caractères doivent être transcodés, atteignant ainsi un traitement de texte plus sûr et plus fiable dans un environnement multi-octet.

    "
    ; ?> <?php // un code de queue non lié $ piedservar = "Ce n'est que du code d'irreller de la queue" ; fonction pied-de-pied ( ) { retour "Exemple de fonction de queue" ; } ?>