如何计算字符串长度,将一个汉字计为两位数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计99个文字,预计阅读时间需要1分钟。
在UTF-8编码下,`strlen`函数会将一个汉字算作两个字符。以下是对给定代码的简化
phpfunction length($str) { $len=strlen($str); $i=0; while ($i < $len) { if (preg_match('/^\x{a1}-\x{ff}/', $str[$i])) { $i +=2; } else { $i +=1; } } return $i;}
utf8下,strlen会把一个汉字算作两个字符,坑爹function length($str){ $len=strlen($str); $i=0; while($i<$len){ if(preg_match('/^['.chr(0xa1).'-'.chr(0xff).']+$/',$str[$i])){ $i+=2; }else{ $i+=1; } $n+=1; } Return $n; }
本文共计99个文字,预计阅读时间需要1分钟。
在UTF-8编码下,`strlen`函数会将一个汉字算作两个字符。以下是对给定代码的简化
phpfunction length($str) { $len=strlen($str); $i=0; while ($i < $len) { if (preg_match('/^\x{a1}-\x{ff}/', $str[$i])) { $i +=2; } else { $i +=1; } } return $i;}
utf8下,strlen会把一个汉字算作两个字符,坑爹function length($str){ $len=strlen($str); $i=0; while($i<$len){ if(preg_match('/^['.chr(0xa1).'-'.chr(0xff).']+$/',$str[$i])){ $i+=2; }else{ $i+=1; } $n+=1; } Return $n; }

