Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6514677
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类:

2009-03-13 09:14:15

PHP 判断字符串-全英文字符-英汉混合-纯汉字的简单方法
看见很多朋友问如何判断字符串是否是纯英文,或纯汉字,或英汉混合。有个传统的方案就是判断字符的值是否小于128,但这种方法无法适用全汉字或英汉混合的情况,这里我提出一种新的途径来辨别。
复制代码
  1. < ?php
  2. $str = "456abc";
  3. $x = mb_strlen($str,'gb2312');
  4. $y = strlen($str); echo "------456abc----
    "; echo "$x".'
    '; echo "$y".'
    ';
  5. $str = "456我是中国人abc
    ";
  6. $x = mb_strlen($str,'gb2312');
  7. $y = strlen($str);
  8. echo "------456我是中国人abc----
    "; echo "$x".'
    '; echo "$y".'
    ';
  9. $str = "我是中国人我爱祖国";
  10. $x = mb_strlen($str,'gb2312');
  11. $y = strlen($str); echo "------我是中国人我爱祖国----
    "; echo "$x".'
    ';
  12. echo "$y".'
    '; $str = "我";
  13. $x = mb_strlen($str,'gb2312');
  14. $y = strlen($str); echo "------我----
    "; echo "$x".'
    ';
  15. echo "$y".'
    ';
  16. $str = "我ab";
  17. $x = mb_strlen($str,'gb2312');
  18. $y = strlen($str); echo "------我ab----
    "; echo "$x".'
    '; echo "$y".'
    ';
  19. ?>


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

1、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一致,可以判断是纯英文字符串。
2、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后得0可以判断为是全汉字的字符串。
3、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后不为0,可以判断为是英汉混合的字符串。
阅读(4511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~