Position actuelle: Accueil> Derniers articles> Comment la fonction MB_Convert_Case convertit-elle correctement une chaîne en lettres majuscules? Analyse des étapes de fonctionnement détaillées

Comment la fonction MB_Convert_Case convertit-elle correctement une chaîne en lettres majuscules? Analyse des étapes de fonctionnement détaillées

gitbox 2025-08-28

En PHP, la conversion de cas des chaînes est une opération courante. Pour le traitement des chaînes des jeux de caractères multi-octets (tels que chinois, japonais, coréen, etc.), PHP fournit la fonction MB_CONVERT_CASE pour convertir les caractères supérieurs et minuscules. Contrairement aux fonctions traditionnelles strtoupper () et strtolower () , MB_Convert_Case prend en charge le codage multi-octets, qui peut mieux gérer les chaînes contenant des lettres non latines.

Cet article analysera en détail comment convertir les chaînes en lettres majuscules à l'aide de la fonction MB_Convert_Case et comment les utiliser.

1. Présentation de la fonction MB_Convert_Case

La fonction MB_CONVERT_CASE est utilisée pour convertir le cas d'une chaîne multi -yte. Sa syntaxe est la suivante:

 <span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$mode</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">null</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>

Description du paramètre:

  • $ str : La chaîne à convertir.

  • Mode $ : mode converti. Cela peut être le suivant:

    • MB_CASE_UPPER : Convertissez toutes les lettres en majuscules.

    • MB_CASE_LOWER : Convertissez toutes les lettres en minuscules.

    • MB_CASE_TITLE : convertit la première lettre de chaque mot en majuscule (mode titre).

  • $ Encodage : paramètre facultatif, spécifiez le codage des caractères. Si vide, la valeur par défaut est le codage des caractères internes (généralement UTF-8).

2. Convertir les cordes en majuscules

Pour convertir toutes les lettres d'une chaîne en majuscules, vous pouvez utiliser le mode MB_Case_upper . Supposons que nous ayons une chaîne que nous voulons convertir en majuscules.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Échantillonnage</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, Bonjour,PHP"</span></span><span>;

</span><span><span class="hljs-comment">// utiliser mb_convert_case Convertir en majuscules</span></span><span>
</span><span><span class="hljs-variable">$upper_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_UPPER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$upper_str</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <span><span>HELLO, Bonjour,PHP
</span></span>

D'après le résultat de sortie, nous pouvons voir que la partie anglaise de la chaîne a été convertie avec succès en lettres majuscules. Les caractères chinois restent inchangés parce que les caractères chinois n'ont pas de distinction de cas dans le codage multi-octets.

3. Exemples d'utilisation communs de MB_Convert_Case

  1. Convertir toutes les lettres d'une chaîne en minuscules

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, Bonjour,PHP"</span></span><span>;
</span><span><span class="hljs-variable">$lower_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_LOWER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$lower_str</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <span><span>hello, Bonjour,php
</span></span>
  1. Convertir la chaîne en cas de titre (première lettre de capitalisation)

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello world, Bonjour,php"</span></span><span>;
</span><span><span class="hljs-variable">$title_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_TITLE, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$title_str</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <span><span><span class="hljs-attribute">Hello</span></span><span> World, Bonjour,Php
</span></span>

4. Spécifiez le format de codage

La fonction MB_Convert_Case prend également en charge le codage de caractères spécifié et, s'il n'est pas spécifié, il utilise le codage de caractères interne actuel. Les formats de codage communs incluent UTF-8 , GB2312 , BIG5 , etc. Pour assurer la précision de la conversion, il est préférable de spécifier explicitement le format de codage lors du traitement des chaînes contenant des jeux de caractères non latins.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Bonjour,world"</span></span><span>;
</span><span><span class="hljs-variable">$upper_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_UPPER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$upper_str</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <span><span>Bonjour,WORLD
</span></span>

5. Choses à noter

  • La fonction MB_CONVERT_CASE affectera uniquement les caractères alphabétiques, et d'autres symboles, nombres, etc. ne seront pas affectés.

  • Si la chaîne entrée contient différents encodages de caractères, il est préférable de s'assurer de passer dans le paramètre de codage $ correct pour éviter les caractères brouillés.

  • Dans PHP, MB_Convert_Case fait partie de l'extension MBSTRING , et vous devez vous assurer que votre environnement PHP l'a activé.

6. Résumé

Grâce à la fonction MB_CONVERT_CASE , les développeurs PHP peuvent facilement convertir les parties des lettres des chaînes multi-octets en majuscules, tous les formats minuscules ou titres. Par rapport aux fonctions de conversion de cas de chaîne traditionnelles, MB_Convert_Case fournit un meilleur support de caractères multi-gobets, ce qui convient particulièrement aux chaînes de traitement impliquant des jeux de caractères non latins tels que le chinois et le japonais.

La maîtrise de l'utilisation de MB_Convert_Case peut non seulement vous aider à contrôler plus précisément le format des chaînes, mais aussi à améliorer votre capacité à traiter le texte international.