En PHP, les fonctions de chaîne traditionnelles telles que strToupper () peuvent ne pas gérer correctement ces caractères lorsqu'ils traitent des jeux de caractères multi -yte (tels que UTF-8, GBK, BIG5, etc.). À l'heure actuelle, nous pouvons utiliser la fonction MB_strtoupper () , qui est une fonction fournie par l'extension de chaîne multi-octe (MBSTring) pour convertir les chaînes en majuscules. Aujourd'hui, nous acquerrons une compréhension approfondie de l'utilisation de base de mb_strtoupper () et expliquerons comment maîtriser rapidement cette fonction.
La fonction de la fonction mb_strtoupper () est de convertir les caractères alphabétiques dans la chaîne donnée en majuscules. Contrairement à Strtoupper () , MB_strtoupper () peut gérer correctement les jeux de caractères multi-octets, garantissant que sous le codage UTF-8, des caractères tels que chinois et japonais peuvent être traités correctement.
<span><span><span class="hljs-title function_ invoke__">mb_strtoupper</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">string</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>
$ STR : La chaîne d'entrée qui doit être convertie en majuscules.
$ Encodage : paramètre facultatif, spécifiez le codage des caractères, la valeur par défaut est nul , c'est-à-dire le codage des caractères internes (généralement UTF-8).
MB_strtoupper () ne convient que pour le traitement de la chaîne de codage multi-octets, et est généralement utilisé pour le codage tel que UTF-8, Shift-Jis, EUC-JP, etc.
Si vous n'installez pas l'extension MBSTring, PHP ne pourra pas utiliser cette fonction, alors assurez-vous que l'extension MBSTring est installée et activée lorsque vous l'utilisez.
L'utilisation la plus courante est de convertir directement la chaîne pour capitaliser. Par exemple, convertissez une chaîne chinoise ou anglaise en majuscules:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello world"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_strtoupper</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>); </span><span><span class="hljs-comment">// Sortir "HELLO WORLD"</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Bonjour,monde"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_strtoupper</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>); </span><span><span class="hljs-comment">// Sortir "Bonjour,monde"</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans l'exemple ci-dessus, mb_strtoupper () est capable de traiter correctement les chaînes d'anglais, en les convertissant en majuscules. Pour les cordes chinoises, comme les caractères chinois eux-mêmes n'ont pas de différence de cas, ils ne changeront pas.
MB_strtoupper () peut spécifier le codage des caractères à travers le paramètre de codage . Par défaut, il utilise le codage des caractères internes de PHP (généralement UTF-8), mais parfois nous devons traiter d'autres chaînes codées, qui peuvent être explicitement spécifiées.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Bonjour,monde"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_strtoupper</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"GBK"</span></span><span>); </span><span><span class="hljs-comment">// exister GBK 编码下Sortir大写</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Le codage est spécifié ici en tant que GBK , et la fonction convertit la chaîne en majuscule en fonction du codage spécifié. Si le codage est incorrect, il peut entraîner des erreurs de sortie ou un code brouillé.
La fonction mb_strtoupper () peut non seulement gérer les caractères ordinaires, mais également gérer correctement les chaînes contenant des caractères spéciaux.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, monde! Bonjour!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_strtoupper</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>); </span><span><span class="hljs-comment">// Sortir "HELLO, monde! Bonjour!"</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, la partie anglaise est convertie en capital tandis que la partie chinoise n'est pas modifiée, et les caractères spéciaux (virgules et marques d'exclamation) restent les mêmes.
Pour les jeux de caractères à un octet (tels que ISO-8859-1 ou Encoding ASCII), Strtoupper () est suffisant. Mais si la chaîne contient des caractères mulabyte (comme le chinois ou le japonais), Strtoupper () ne fonctionnera pas correctement et peut même entraîner un code brouillé.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Bonjour,monde"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strtoupper</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>); </span><span><span class="hljs-comment">// Sortir错误或乱码</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Le code ci-dessus peut provoquer du code brouillé car Strtoupper () ne prend pas en charge les caractères multi -yte, tandis que mb_strtoupper () peut le gérer correctement.
MB_Strtoupper () est un outil très utile lorsqu'il s'agit de jeux de caractères multi-gytet, particulièrement adaptés aux jeux de caractères chinois, japonais et autres. En PHP, l'utilisation garantit que les caractères mulabytets sont correctement convertis en majuscules sans comportement brouillé ou incorrect. La maîtrise de l'utilisation de base de mb_strtoupper () peut non seulement améliorer l'efficacité du codage, mais également garantir que l'application peut gérer correctement divers codages de caractères et améliorer l'expérience utilisateur.