首页 > 编程知识 正文

求字符串长度函数strlen,比较字符串的函数

时间:2023-05-04 04:01:10 阅读:20770 作者:2479

在PHP中,函数strlen (返回字符串的长度,strlen )函数返回字符串所占字节的长度。 字母、数字和符号都占字节,它们的长度都是1strlen )和mb_strlen )函数。 在PHP中为函数strlen ) )。 函数的原型如下。 代码为: int strlen (string string _ input ); 参数string_input是要处理的字符串。 strlen ) )函数返回字符串所占的字节长度。 英文字母、数字、符号都是1字节,长度都是1。 白天的文字占两个字节,所以白天的文字长度为2。 比如代码是: PHPEchoStrlen(www.sunchis.com); echo strlen (三知开发网); “EchoStrlen(www.sunchis.com)”运行结果:“EchoStrlen (三智开发网)”运行结果: 15此处有疑问。 不是一个中文字符占两个字节吗? “三知开发网”,五个汉字,运行结果怎么会是15呢? 理由就在这里。 strlen ()计算将单个UTF-8中文字符视为长度3。 如果中文和英语混合,如何准确计算字符串的长度? 在此,必须导入其他函数mb_strlen (。 与mb_strlen (函数为strlen )类似,只是多了一个参数来指定字符集的编码。 函数原型如下: intmb _ strlen (string string _ input,string encode ); PHP内置的字符串长度函数strlen无法正确处理中文字符串,只能得到字符串所占的字节数。 在GB2312中文代码中,strlen的值是汉字数量的两倍,而在UTF-8代码的中文中则相差3倍(在UTF-8代码中,一个汉字占3个字节)。 因此,以下代码可以准确计算中文字符串的长度。 代码是下一个:吗? php $str='三知sunchis开发网络'; Echostrlen($str ).'

'; //结果: 22echoMB_strlen($str,' UTF8 ' ).'

'; //结果: 12$strlen=(strlen($str ) MB _ strlen ($ str,' UTF8 ' ) )/2; echo $strlen; //结果: 17? 原理分析: strlen ) )计算时,UTF-8的中文字符长度为3,因此“三知sunchis开发网”的长度为53(71=22MB_Strlen )计算时,内码选定为UTF8,则选择一个中文字符“三知strlen”……注意:对于MB_strlen($str,' UTF-8 ' ),如果省略第二个参数,将使用PHP的内部编码。 内部编码可以用mb_internal_encoding ()函数获得。 请注意,mb_strlen不是PHP核心函数。 使用前,必须确保php.ini中加载了php_mbstring.dll,即“extension=php_mbstring.dll”行存在且未注释掉否则,将显示

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。