PHP strlen与mb_strlen判断字符串是纯英文/纯汉字/汉英混合
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-29 15:00:21 浏览: 评论:0
下面我来介绍PHP strlen与mb_strlen判断字符串是纯英文/纯汉字/汉英混合,在php中UTF8每个汉字等于3个长度;GBK每个汉字等于2个长度;
利用以上汉字与英文的差异,我们就可以利用mb_strlen函数与strlen函数分别计算出两组长度数字,然后根据规律进行运算即可判断出字符串的类型了.
先讲一下strlen与mb_strlen是求字符串长度的函数,代码如下:
- <?php
- //测试时文件的编码方式要是UTF8
- $str='中文a字1符';
- echo strlen($str).'<br>';//14
- echo mb_strlen($str,'utf8').'<br>';//6
- echo mb_strlen($str,'gbk').'<br>';//8
- echo mb_strlen($str,'gb2312').'<br>';//10
- ?>
PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得 到的只是字符串所占的字节数,对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了,在 UTF-8编码下,一个汉字占3个字节.
例,代码如下:
- <?php
- /**
- * PHP判断字符串纯汉字 OR 纯英文 OR 汉英混合
- */
- echo '<meta charset="utf-8" />';
- function utf8_str($str){
- $mb = mb_strlen($str,'utf-8');
- $st = strlen($str);
- if($st==$mb)
- return '纯英文';
- if($st%$mb==0 && $st%3==0)
- return '纯汉字';
- return '汉英混合';
- }
- $str = '琼台博客';
- echo '字符串:<span style="color:red">'.$str.'</span>,是<span style="color:red">'.utf8_str($str).'</span>';
- ?>
需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题.
Tags: strlen mb_strlen 纯英文 汉英混合
相关文章
- ·php使用strlen()判断中文汉字字符串长度(2014-09-21)
- ·浅析PHP中strlen和mb_strlen的区别(2021-04-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)