Maison > php教程 > php手册 > le corps du texte

PHP strlen()和mb

WBOY
Libérer: 2016-06-06 20:00:27
original
1213 Les gens l'ont consulté

strlen — 获取字符串长度 说明 int strlen ( string $string ) 返回给定的字符串 string 的长度。 参数 string 需要计算长度的 字符串 。 返回 成功则返回字符串 string 的长度;如果 string 为空,则返回 0。 mb_strlen — 获取字符串的长度 说明 mixed mb

strlen获取字符串长度

说明

int strlen ( string $string )

返回给定的字符串 string 的长度。

参数

string  需要计算长度的字符串

返回值

成功则返回字符串 string 的长度;如果 string 为空,则返回 0。


mb_strlen 获取字符串的长度

说明

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

获取一个 string 的长度。

参数

str  要检查长度的字符串
encoding  encoding参数为字符编码。如果省略,则使用内部字符编码。

返回值

返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。

如果给定的 encoding 无效则返回 FALSE

上面是手册中关于两个函数的解释,乍一看,好像都差不多。

下面通过实例,来讲解两者之间的区别。

//文件的编码方式为UTF8
$str='字a符1串b长2度';  
echo strlen($str).'<br>';//19
echo mb_strlen($str,'utf-8').'<br>';//9
Copier après la connexion

再看下一个例子
<?php //文件的编码方式为gb2312
$str=&#39;字a符1串b长2度&#39;; 
echo strlen($str).&#39;<br>';//14
echo mb_strlen($str,'utf-8').'<br>';//9
?>
Copier après la connexion

结果分析:在strlen字符长度时,一个UTF8的中文字符算3个长度,

所以“字a符1串b长2度”长度是3+1+3+1+3+1+3+1+3=19,

在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“字a符1串b长2度”长度是9 .

在gb2312中,strlen计算字符长度时,一个中文字符算2个长度。

另外,需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载php_mbstring.dll,否则会出现未定义函 数的问题。



Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal