当前位置:编程学习 > php >>

PHP 判断字符串是否为全英文,英汉混合,纯汉字方法

PHP 判断字符串是否为全英文,英汉混合,纯汉字方法

利用Php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文、英汉混合、还是纯汉字。简要说明如下(以上示例程序)

1、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一致,可以判断是纯英文字符串。

2、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后得0可以判断为是全汉字的字符串。

3、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后不为0,可以判断为是英汉混合的字符串。

01 function Check_stringType($str1) {

02         $strA = trim($str1);

03         $lenA = strlen($strA);

04         $lenB = mb_strlen($strA, "utf-8");

05         if ($lenA === $lenB) {

06             return "1"; //全英文

07         } else {

08             if ($lenA % $lenB == 0) {

09                 return "2"; //全中文

10             } else {

11                 return "3"; //中英混合

12             }

13        }

14  }


Php 判断字符串-全英文字符-英汉混合-纯汉字的简单方法  

2009-08-19 10:31:06|  分类: PHP文章 |字号 订阅
如何判断字符串是否是纯英文,或纯汉字,或英汉混合。有个传统的方案就是判断字符的值是否小于128,但这种方法无法适用全汉字或英汉混合的情况,这里我总结了一种新的途径来辨别。

< ?php
$str = "456abc";
$x = mb_strlen($str,'gb2312');
$y = strlen($str); echo "------456abc----<br>"; echo "$x".'<br />'; echo "$y".'<br />';
$str = "456我是中国人abc<br />";
$x = mb_strlen($str,'gb2312');
$y = strlen($str);
echo "------456我是中国人abc----<br />"; echo "$x".'<br />'; echo "$y".'<br />';
$str = "我是中国人我爱祖国";
$x = mb_strlen($str,'gb2312');
$y = strlen($str); echo "------我是中国人我爱祖国----<br />"; echo "$x".'<br />';
echo "$y".'<br />'; $str = "我";
$x = mb_strlen($str,'gb2312');
$y = strlen($str); echo "------我----<br />"; echo "$x".'<br />';
echo "$y".'<br />';
$str = "我ab";
$x = mb_strlen($str,'gb2312');
$y = strlen($str); echo "------我ab----<br />"; echo "$x".'<br />'; echo "$y".'<br />';
?>


利用php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文、英汉混合、还是纯汉字。简要说明如下(以上示例程序)

1、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一致,可以判断是纯英文字符串。
2、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后得0可以判断为是全汉字的字符串。
3、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后不为0,可以判断为是英汉混合的字符串。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,