1
soeeeeee OP 好像找到了。。。关贴,,
|
2
lincanbin 2014-12-28 23:16:21 +08:00
一个简单的实现,用正则把\x00-\xff替换为任意3个字符即可,然后用字符串长度函数处理即可。
例如把\x00-\xff替换成***,然后substr |
3
kankana 2014-12-28 23:21:49 +08:00
我有次google, 英文的资料找了好久都找不到, 只好试试中文, 发现csdn也有人遇到同样的问题.
点进去一看, 发现楼主已经把问题解决了, 回贴"问题已经解决". 看了接下来的几层楼, 发现有人在骂楼主. 你知道那个楼主为什么被骂吗? |
5
soeeeeee OP 代码:
function strLength($str,$charset='utf-8'){ 8 if($charset=='utf-8') $str = iconv('utf-8','gb2312',$str); 9 $num = strlen($str); 10 $cnNum = 0; 11 for($i=0;$i<$num;$i++){ 12 if(ord(substr($str,$i+1,1))>127){ 13 $cnNum++; 14 $i++; 15 } 16 } 17 $enNum = $num-($cnNum*2); 18 $number = ($enNum/2)+$cnNum; 19 return ceil($number); 20 } |