教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP strlen与mb_strlen判断字符串是纯英文/纯汉字/汉英混合

PHP strlen与mb_strlen判断字符串是纯英文/纯汉字/汉英混合

发布时间:2017-10-25   编辑:jiaochengji.com
教程集为您提供PHP strlen与mb,strlen判断字符串是纯英文/纯汉字/汉英混合等资源,欢迎您收藏本站,我们将为您提供最新的PHP strlen与mb,strlen判断字符串是纯英文/纯汉字/汉英混合资源

利用以上汉字与英文的差异,我们就可以利用mb_strlen函数与strlen函数分别计算出两组长度数字,然后根据规律进行运算即可判断出字符串的类型了

先讲一下strlen与mb_strlen是求字符串长度的函数

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy3579')"><textarea id="copy3579" rows="10" cols="40" style="display: none;"></textarea></td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy3579>

<?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个字节)。

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5473')"><textarea id="copy5473" rows="10" cols="40" style="display: none;"></textarea></td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5473>

<?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”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题

您可能感兴趣的文章:
php判断字符串是纯英文、纯汉字或汉英混合的实现代码
php判断字符串是纯英文、纯汉字或汉英混合格式
PHP strlen与mb_strlen判断字符串是纯英文/纯汉字/汉英混合
php 判断是否是中文/英文/数字的实例代码
PHP strlen与mb_strlen区别
谈谈PHP中strlen和mb_strlen的区别
如何正确统计中文字数?
php字符串函数的简单示例代码
php分割中英文字符串的几种方法
php 统计计算中文汉字字数代码

[关闭]
~ ~