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));
打赏

本文固定链接: https://www.cxy163.net/archives/4132 | 绝缘体

该日志由 绝缘体.. 于 2013年05月23日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: php判断字符串是否全英文,纯中文,中英文组合的方法 | 绝缘体
关键字: , , , ,

php判断字符串是否全英文,纯中文,中英文组合的方法:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter