php 统计计算中文汉字字数代码
本文章来给大家介绍一些常用见的php 统计计算中文汉字字数代码,有需要了解的朋友可进入参考.
用ASCII码判断,代码如下:
<?php $str = "abcdefg中华人民共和国中国人民解放军中国共产党中国人民"; $num = strlen($str); //$num字串长度。 echo $num . "<br>"; for ($i = 0; $i < $num; $i++) if (ord(substr($str, $i, 1)) > 0xa0) $j++; echo $j / 2; //$j/2 汉字数。 ?>
应该这样剥除所有字母数字和标点,空格,代码如下:
<?php $testStr = '我没有告诉你,你就千万不要乱guess, 这样可不good!'; $testStr = eregi_replace("[[:alnum:]]|[[:punct:]]|[[:space:]]", '', $testStr); echo ($testStr); echo ('字符串中所有中文字数为:' . mb_strlen($testStr)); ?>
#计算中英文混合字符串的长度,代码如下:
<?php function ccStrLen($str) { $ccLen = 0; $ascLen = strlen($str); $ind = 0; $hasCC = ereg("[xA1-xFE]", $str); //判断是否有汉字 $hasAsc = ereg("[x01-xA0]", $str); //判断是否有ASCII字符 if ($hasCC && !$hasAsc) //只有汉字的情况 return strlen($str) / 2; if (!$hasCC && $hasAsc) //只有Ascii字符的情况 return strlen($str); for ($ind = 0; $ind < $ascLen; $ind++) { if (ord(substr($str, $ind, 1)) > 0xa0) { $ccLen++; $ind++; } else { $ccLen++; } } return $ccLen; } function ccStrLeft($str, $len) //从左边截取中英文混合字符串 { $ascLen = strlen($str); if ($ascLen <= $len) return $str; $hasCC = ereg("[xA1-xFE]", $str); //同上 $hasAsc = ereg("[x01-xA0]", $str); if (!$hasCC) return substr($str, 0, $len); if (!$hasAsc) if ($len & 0x01) //如果长度是奇数 return substr($str, 0, $len + $len - 2); else return substr($str, 0, $len + $len); $cind = 0; $flag = 0; while ($cind < $ascLen) { if (ord(substr($str, $cind, 1)) < 0xA1) $flag++; $cind++; } if ($flag & 0x01) return substr($str, 0, $len); else return substr($str, 0, $len - 1); ?>
本文地址:http://www.phprm.com/develop/fs3951.html
转载随意,但请附上文章地址:-)