En PHP, les fonctions traditionnelles de longueur de chaîne ne calculent souvent pas avec précision lors du traitement des caractères multi-gytets. Par exemple, les caractères chinois sont des multi-gobytes sous le codage UTF-8, et l'utilisation de fonctions normales pour calculer entraînera des erreurs de longueur. Heureusement, PHP fournit une fonction spéciale MB_strlen pour gérer de telles situations.
Avant d'utiliser MB_STRLEN , vous devez confirmer que PHP a activé l'extension de chaîne MultiByte. Ouvrez le fichier de configuration PHP PHP.ini et recherchez la ligne de code suivante:
; extension = MbString
S'il y a un point-virgule ";" Devant cela, supprimez-le et redémarrez le serveur Web ou le service PHP pour vous assurer que l'extension prend effet.
<?php
$str = "Bonjour,monde!";
$length = mb_strlen($str, "UTF-8");
echo "Chaîne $str La longueur est: $length";
?>
Dans le code ci-dessus, la variable $ stores stocke une chaîne contenant du chinois. Appelez MB_Strlen et spécifiez le codage en tant que UTF-8 pour calculer correctement la longueur de chaîne. Les résultats de l'exécution montreront:
Bonjour, String! La longueur est: 6
Parfois, il est nécessaire de déterminer si la chaîne est vide. L'utilisation de MB_Strlen ne peut pas exclure les chaînes contenant uniquement des caractères d'espace. À l'heure actuelle, vous pouvez utiliser la fonction de garniture pour supprimer les espaces aux deux extrémités, puis juger la longueur:
<?php
$str = " ";
$trimmedStr = trim($str);
if (mb_strlen($trimmedStr, "UTF-8") > 0) {
echo "Chaîne不为空";
} else {
echo "Chaîne为空";
}
?>
De cette façon, même s'il n'y a que des espaces dans la chaîne, le programme le jugera correctement comme une chaîne vide.
En utilisant la fonction MB_strlen de PHP, vous pouvez obtenir avec précision la longueur d'une chaîne multi-octets pour éviter les erreurs dans un environnement multilingue en évitant le problème des fonctions de chaîne ordinaires. Combiné avec la fonction de garniture , il peut également déterminer efficacement si la chaîne est vide. Ces techniques sont très pratiques lorsqu'ils traitent avec des personnages chinois et autres personnages multi-octets et sont très importants pour les développeurs PHP.