国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php自定義函數實現統計中文字符串長度的方法小結

2024-05-04 23:56:40
字體:
來源:轉載
供稿:網友

本文實例講述了php自定義函數實現統計中文字符串長度的方法。分享給大家供大家參考,具體如下:

中文字符計算為2個字符 英文字符計算為1個

代碼

/*** 可以統計中文字符串長度的函數**/function abslength($str){  $len=strlen($str);  $i=0;  while($i<$len)  {    if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))    {      $i+=2;    }    else    {      $i+=1;    }  }  return $i;}

另:php判斷字符長度:中文,英文,數字。

這個方法很多。 記錄一個簡單的。

mb_strlen($str, 'GBK');

缺點是要安裝mb庫。

不過這個還是有部分問題待解決。

GB碼編碼規則是這樣的:每個漢字由兩個字節構成,第一個字節的范圍從0XA1-0XFE,共96種。第二個字節的范圍分別為0XA1-0XFE,共96種。利用這兩個字節共可定義出 96 * 96=8836種漢字。實際共有6763個漢字。

BIG5碼編碼規則是這樣的:每個漢字由兩個字節構成,第一個字節的范圍從0X81-0XFE,共126種。第二個字節的范圍分別為0X40-0X7E,0XA1-0XFE,共157種。也就是說,利用這兩個字節共可定義出 126 * 157=19782種漢字。這些漢字的一部分是我們常用到的,如一、丁,這些字我們稱為常用字,其BIG5碼的范圍為0XA440-0XC671,共5401個。較不常用的字,如濫、調,我們稱為次常用字,范圍為 0XC940-0XF9FE,共7652個,剩下的便是一些特殊字符。

安全點的方法。

function StrLenW($str){    $count = 0;    $len = strlen($str);     for($i=0; $i<$len; $i++,$count++)       if(ord($str[$i])>=128)        $i++;     return $count;}

最后,下面這個才是正確的,通用的!

代碼:

/**作用:統計字符長度包括中文、英文、數字* 參數:需要進行統計的字符串、編碼格式目前系統統一使用UTF-8* 修改記錄:   $str = "kds";  echo sstrlen($str,'utf-8');* */function sstrlen($str,$charset) {    $n = 0; $p = 0; $c = '';    $len = strlen($str);    if($charset == 'utf-8') {      for($i = 0; $i < $len; $i++) {        $c = ord($str{$i});        if($c > 252) {          $p = 5;        } elseif($c > 248) {          $p = 4;        } elseif($c > 240) {          $p = 3;        } elseif($c > 224) {          $p = 2;        } elseif($c > 192) {          $p = 1;        } else {          $p = 0;        }        $i+=$p;$n++;      }    } else {      for($i = 0; $i < $len; $i++) {        $c = ord($str{$i});        if($c > 127) {          $p = 1;        } else {          $p = 0;      }        $i+=$p;$n++;      }    }    return $n;}

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 惠水县| 墨脱县| 襄樊市| 任丘市| 胶州市| 读书| 太原市| 平度市| 贵阳市| 英超| 鸡西市| 贵阳市| 石阡县| 兴山县| 农安县| 克什克腾旗| 宁南县| 乐东| 西乡县| 深圳市| 法库县| 兴隆县| 西乡县| 张家口市| 鹰潭市| 临高县| 大方县| 桂东县| 城口县| 同德县| 泊头市| 柏乡县| 高尔夫| 神农架林区| 安多县| 卢湾区| 九江市| 建水县| 曲周县| 讷河市| 石台县|