本文章來給大家介紹一些常用見的php 統計計算中文漢字字數代碼,有需要了解的朋友可進入參考.
用ASCII碼判斷,代碼如下:
- <?
- $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));
- ?>
#計算中英文混合字符串的長度,代碼如下:
- 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);
- }
新聞熱點
疑難解答