您的位置:首页 > 编程语言 > PHP开发

php 判断是否有中文字符的两种方法

2010-08-25 12:59 676 查看
1、用正则判断是否为中文的代码
文件为GB2312格式:
<?php

$str= 'incode';

//$str=
'程序设计';

if (!preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",
$str))

{

echo '请您使用中文,谢谢!';

}?>
文件为UTF-8格式:
把正则判断改为://if(preg_match("/([/x4e00-/x9fa5])/",$str, $arr) )

2、使用php中的mb_strlen和strlen函数判断
<!-- [if gte mso 10]>
方法比较简单:分别使用以上两个函数以当前编码测出字符的返回值,然后比较返回值。

返回值相等的为纯英文、纯数字、英数混排;

返回值不等,且strlen返回值可被mb_strlen整除的为纯汉字

返回值不等,且strlen返回值不可被mb_strlen整除的为英汉或数汉混排

如下列所示:

<?php
$strarray[1] = "hello";
$strarray[2] = "123456";
$strarray[3] = "123hello";
$strarray[4] = "你好";
$strarray[5] = "123你好";
$strarray[6] = "hello你好";
$strarray[7] = "123hello你好";
foreach ($strarray as $ke=>$value) {
$x = mb_strlen($value,'gb2312');
$y = strlen($value);
echo $strarray[$ke].'  <span style="color: #ff0000;" mce_style="color: #ff0000;">'.$x.'</span> <span style="color:#ff0000;" mce_style="color:#ff0000;">'.$y.'</span>';
}?>
输出结果:hello 5 5 123456 6 6 123hello 8 8你好 4 6 123你好 7 9hello 你好 9 11 123hello你好 12 14
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: