php判断是否是全英文,php判断字符串是否全英文,纯中文,中英文组合的方法

有时候我们需要对字符串进行对比的时候会先对字符串使用strtolower将字符串转为小写,但是当遇到字符串中包含中文的情况下,这种情况下会出现问题,中文字符串经过strtolower转换后会变为乱码,搜索了一番确定了这为php系统函数的一个bug,但问题还是需要解决,下面经过摸索得出两种解决办法。

(1)第一种是检测字符串中是否包含中文,如果包含中文就不进行小写转换比较了。这里总结了一个函数,判断一个字符串是否是由纯英文,纯中文或者中英文混合组成。

/*

*function:检测字符串是否由纯英文,纯中文,中英文混合组成

*param string

*return 1:纯英文;2:纯中文;3:中英文混合

*/

function check_str($str=''){

if(trim($str)==''){

return '';

}

$m=mb_strlen($str,'utf-8');

$s=strlen($str);

if($s==$m){

return 1;

}

if($s%$m==0&&$s%3==0){

return 2;

}

return 3;

}

(2)使用urlencode将字符串进行编码之后,然后再比较,比第一种方法更全面一些。

具体过程为:

strtolower(urlencode($str));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值