Pendant le processus de développement, nous devons souvent compter le nombre de caractères chinois dans la chaîne. PHP fournit une fonction MB_STRLEN , qui peut calculer avec précision la longueur des caractères chinois. Ensuite, nous montrerons un exemple simple:
Dans le code ci-dessus, nous définissons une chaîne String $ contenant des caractères chinois, puis utilisons la fonction MB_Strlen pour obtenir son nombre de mots chinois. Notez que la méthode d'encodage est définie sur «UTF-8» pour s'assurer que les caractères chinois peuvent être correctement comptés.
Lorsque vous comptez les caractères chinois et anglais, les résultats varient généralement. Par exemple, le nombre de caractères chinois en temps réel de chaîne "PHP en temps réel" contient 10 caractères chinois, et si nous utilisons Strlen pour calculer le nombre de caractères anglais de cette chaîne, le résultat est 18.
Grâce au code ci-dessus, nous pouvons voir que les longueurs de caractère comptées en utilisant la fonction Strlen incluent différentes méthodes d'encodage pour les caractères anglais et chinois.
Lors du calcul du nombre de caractères chinois et anglais, la fonction Strlen est différente de la fonction MB_strlen . Plus précisément, Strlen est utilisé pour calculer la longueur d'octets, tandis que MB_STRLEN est utilisé pour calculer la longueur du caractère.
Comme indiqué ci-dessus, Strlen renvoie le résultat de 68, qui est le nombre d'octets pour cette chaîne, pas le nombre de caractères.
Il convient de noter que les méthodes de traitement des caractères chinois et anglaises en PHP sont différentes. Dans la fonction Strlen , un caractère chinois occupe généralement trois octets, il y a donc une différence entre le nombre de caractères et d'octets. Nous pouvons le vérifier avec le code suivant:
Grâce à ce code, nous pouvons clairement voir qu'il existe une différence significative entre le nombre de caractères anglais et le nombre de caractères chinois.
En résumé, Strlen convient au calcul des longueurs d'octets, principalement utilisées pour les caractères anglais, tandis que MB_Strlen convient au traitement des caractères chinois et peut retourner des longueurs de caractère précises. Comprendre la différence entre les deux est très important pour gérer les chaînes de langage mixte.