php中strlen()与mb_strlen()来判断中文

后端 ngxz 5年前 (2019-05-11) 1319次浏览 已收录 扫描二维码

strlen($str)是用来检测字符串长度的函数,但是他不能正常检查中文字符串的长度,只能得到字符串的字节数。

strlen(‘哈啰’);// utf8编码返回6

如果我们想知道汉字的个数,就需要用mb_strlen($str)来获取, mb_strlen()函数的第二个参数可以传编码方式,不传时是默认的编码,

mb_strlen(‘哈啰’,’utf-8′);//返回的就是2

对于有的时候,返回的字符串正常是非中文(账户、密码等),异常是中文(错误信息)时,可以使用

strlen($str) == mb_strlen($str)

来区分,相等则不包含中文。当然也可以通过正则来判断是否包含中文

preg_match('/^[\x{4e00}-\x{9fa5}]+$/u',$str)


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中strlen()与mb_strlen()来判断中文
喜欢 (0)