Maison  >  Article  >  développement back-end  >  Calculer la longueur de la chaîne à l'aide de la fonction mb_strlen() en PHP

Calculer la longueur de la chaîne à l'aide de la fonction mb_strlen() en PHP

王林
王林original
2023-06-27 13:28:031711parcourir

En développement PHP, il est souvent nécessaire de calculer la longueur des chaînes. PHP fournit une fonction intégrée mb_strlen(), utilisée pour calculer la longueur d'une chaîne, particulièrement adaptée au traitement des caractères chinois.

En PHP, la longueur d'une chaîne peut être obtenue à l'aide de la fonction strlen(). Cependant, cette fonction rencontre des problèmes avec les statistiques sur les chaînes contenant des caractères non-ASCII (y compris le chinois). Puisque strlen() est calculé en fonction du nombre d'octets occupés par chaque caractère, dans certaines méthodes de codage, les caractères chinois occupent 2 ou 3 octets, tandis que les caractères ASCII n'occupent qu'1 octet, donc si la chaîne contient des caractères chinois, alors la longueur de la chaîne calculé par la fonction strlen() est inexact.

Par exemple :

$str = 'Hello 你好';
echo strlen($str);

Le résultat de sortie est 11, mais en fait la longueur de cette chaîne devrait être 8. En effet, le nombre d'octets occupés par les caractères chinois est différent, ce qui entraîne un calcul inexact de la fonction strlen().

Pour résoudre ce problème, nous pouvons utiliser la fonction mb_strlen(). La syntaxe de la fonction

mb_strlen() est la suivante :

int mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

où $str est la chaîne dont la longueur doit être calculée, $encoding est la méthode d'encodage de la chaîne et la valeur par défaut est l'encodage de caractères interne du scénario actuel. Si la chaîne est codée en UTF-8, le paramètre $encoding peut être omis ou défini sur « UTF-8 ».

À l'aide de la fonction mb_strlen(), l'exemple ci-dessus peut être réécrit comme suit :

$str = 'Hello 你好';
echo mb_strlen($str, 'UTF-8');

À ce stade, le résultat de sortie est 8, ce qui est cohérent avec la longueur réelle. La fonction mb_strlen() identifie automatiquement les caractères non-ASCII dans une chaîne, calcule correctement le nombre d'octets qu'ils occupent et renvoie la longueur réelle de la chaîne.

Il convient de noter que la fonction mb_strlen() ne convient que pour calculer la longueur des chaînes codées en caractères multi-octets. Pour calculer la longueur des chaînes codées sur un seul octet, vous devez toujours utiliser la fonction strlen().

En plus de la fonction mb_strlen(), PHP fournit également une série de fonctions commençant par mb_ pour traiter les chaînes de codage de caractères multi-octets, telles que mb_substr(), mb_strpos(), mb_strtolower(), etc. Ces fonctions sont très utiles lors du développement de sites Web multilingues.

Pour résumer, l'utilisation de la fonction mb_strlen() pour calculer la longueur de la chaîne en PHP peut gérer correctement le calcul de la longueur des caractères chinois. Cette fonction est très utile pour le développement de sites Web multilingues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn