Maison  >  Article  >  développement back-end  >  Analyse des différences entre la fonction intégrée strlen de PHP et la fonction d'extension mbstring mb_strlen

Analyse des différences entre la fonction intégrée strlen de PHP et la fonction d'extension mbstring mb_strlen

不言
不言original
2018-07-16 09:21:021928parcourir

Cet article présente principalement la différence entre la fonction intégrée PHP strlen et la fonction d'extension mbstring mb_strlen. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

#EXAMPLE

$str_uncode = "简体中文Chinese(Simplified)";
//统计字符串长度
echo strlen($str_uncode).&#39;<br>&#39;;//结果:31
echo mb_strlen($str_uncode, &#39;UTF-8&#39;).&#39;<br>&#39;;结果:23
echo mb_strlen($str_uncode, &#39;GBK&#39;).&#39;<br>&#39;;结果:25
echo mb_strlen($str_uncode, &#39;GB2312&#39;).&#39;<br>&#39;;结果27
Analyse des résultats :

strlen Compte un caractère chinois pour 3 octets (les caractères chinois complexes compteront pour 4 octets)

mb_strlen 'UTF-8' encode un caractère chinois par un octet

La fonction de longueur de chaîne intégrée de PHP strlen ne peut pas gérer correctement les chaînes chinoises. Elle obtient uniquement le nombre d'octets occupés par la chaîne. Pour l'encodage chinois GB2312, la valeur obtenue par strlen est le double du nombre de caractères chinois, tandis que pour le chinois encodé en UTF-8, la différence est de trois fois (sous l'encodage UTF-8, un caractère chinois occupe 3 octets).

L'utilisation de la fonction mb_strlen peut mieux résoudre ce problème. L'utilisation de mb_strlen est similaire à strlen, sauf qu'il possède un deuxième paramètre facultatif pour spécifier le codage des caractères. Par exemple, pour obtenir la longueur $str de la chaîne UTF-8, vous pouvez utiliser mb_strlen($str,'UTF-8').

Si le deuxième paramètre est omis, l'encodage interne de PHP sera utilisé. L'encodage interne peut être obtenu via la fonction mb_internal_encoding().

mb_strlen n'est pas une fonction principale de PHP. Avant de l'utiliser, vous devez vous assurer que php_mbstring.dll est chargé dans php.ini, c'est-à-dire vous assurer que la ligne "extension=php_mbstring.dll" existe. et n'a pas été commenté, sinon un message d'erreur apparaîtra Le problème de la définition des fonctions.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment analyser les liens morts d'URL en utilisant PHP

Comment utiliser var_export en PHP

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