php如何支持mb_strlen如何使用php

如题所述

PHP字符串长度计算strlen()函数使用介绍

strlen()函数和mb_strlen()函数

在PHP中,函数strlen()返回字符串的长度。功能原型如下:

复制代码

代码如下:

(同Internationalorganizations)国际组织

strlen(字符串

string_input);

参数string_input是要处理的字符串。

函数的作用是:返回字符串的字节长度。一个英文字母,一个数字,各种符号都占一个字节,长度都是1。中午字符占用两个字节,所以中午字符的长度是2。例如

复制代码

代码如下:

www.sunchis.com);

回声

strlen(三知发展网”);

?www.sunchis.com);运行结果:15

“回声

strlen(三知发展网”);运行结果:15

这里有个问题,一个汉字不占2个字节吗?“三支开发网”,明明是五个汉字,运行结果怎么会是15?

原因是:在计算strlen()时,一个UTF-8汉字将被视为长度为3。中英文混用的情况下,如何准确计算字符串的长度?这里要介绍另一个函数mb_strlen()。mb_strlen()函数与strlen()几乎相同,除了一个指定字符集编码的附加参数。功能原型是:

复制代码

代码如下:

(同Internationalorganizations)国际组织

mb_strlen(字符串

字符串输入,

线

编码);

PHP内置的字符串长度函数strlen无法正确处理中文字符串,它只得到字符串占用的字节数。对于GB2312的中文编码,strlen得到的值是汉字数的两倍,而对于UTF-8的中文编码,则相差三倍(在UTF-8下,一个汉字占用3个字节)。

因此,下面的代码可以准确地计算出中文字符串的长度:

复制代码

代码如下:

回声

strlen($str)。"

//结果:22

回声

mb_strlen($str,

//结果:12

$strlen

=

(strlen($str)mb_strlen($str,

回声

$strlen

//结果:17

?UTF-8),如果省略第二个参数,将使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数获得。需要注意的是,mb_strlen不是PHP核心函数。在使用之前,需要确保php.ini中加载了php_mbstring.dll,也就是确保“extension=php_mbstring.dll”这一行存在,并且没有被注释掉,否则会出现函数未定义的问题。

温馨提示:答案为网友推荐,仅供参考
相似回答