Le contenu de cet article concerne la comparaison entre strlen() et mb_strlen() en PHP. 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
Ceci. l'article est original par le blogueur, veuillez indiquer la source s'il est réimprimé.
Tout d'abord, jetons un coup d'œil à ce que dit la documentation officielle ;
strlen() - utilisé pour obtenir la longueur de la chaîne
int strlen ( string $string
)
Renvoie la longueur de la chaîne donnée string
.
mb_strlen — Obtenir la longueur de la chaîne
mixte mb_strlen ( chaîne $str
[, chaîne $encoding
= mb_internal_encoding() ] )
Obtenez la longueur d'une chaîne.
str : String pour vérifier la longueur.
encodage : Le paramètre encoding
est l'encodage des caractères. En cas d'omission, le codage de caractères interne est utilisé.
Remarque : La fonction strlen() ne peut pas gérer correctement les chaînes chinoises. Elle obtient uniquement le nombre d'octets occupés par la chaîne <.>
Dans strlen(), l'encodage est GB2312, et un caractère chinois occupe 2 octets. S'il est codé en utf-8, un caractère chinois occupe 3 octets. Cependant,<?php header("Content-type:text/html;charset=utf-8"); echo "关于字符串你长度获取的测试"."<br />"; $_str_y = "hello"; $_str_c = "你好"; //strlen() echo "strlen()输出hello的长度".strlen($_str_y)."<br />"; echo "strlen()输出'你好'的长度".strlen($_str_c)."<br />"; /** * 输出: * strlen()输出hello的长度5 * strlen()输出'你好'的长度6 */ //mb_strlen() echo "mb_strlen( 不指定字符编码 )输出hello的长度".mb_strlen($_str_y)."<br />"; echo "mb_strlen( 不指定字符编码 )输出'你好'的长度".mb_strlen($_str_c)."<br />"; /** * mb_strlen( 不指定字符编码 )输出hello的长度5 * mb_strlen( 不指定字符编码 )输出'你好'的长度6 */ //mb_strlen() echo "mb_strlen( utf-8 )输出hello的长度".mb_strlen($_str_y,'utf-8')."<br />"; echo "mb_strlen( utf-8 )输出'你好'的长度".mb_strlen($_str_c,'utf-8')."<br />"; /** * 输出: * mb_strlen( utf-8 )输出hello的长度5 * mb_strlen( utf-8 )输出'你好'的长度2 */ ?>
Remarque : 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, assurez-vous que "extension=php_mbstring.dll" Une ligne existe et n'est pas commentée, sinon un problème de fonction non défini se produira.
Recommandations associées :
La différence entre les classes abstraites et les interfaces 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!