欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php自定義函數(shù)實(shí)現(xiàn)統(tǒng)計(jì)中文字符串長(zhǎng)度的方法小結(jié)

 更新時(shí)間:2017年04月15日 11:57:34   作者:小炒花生米  
這篇文章主要介紹了php自定義函數(shù)實(shí)現(xiàn)統(tǒng)計(jì)中文字符串長(zhǎng)度的方法,結(jié)合實(shí)例形式總結(jié)分析了php針對(duì)中文的判定、編碼與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了php自定義函數(shù)實(shí)現(xiàn)統(tǒng)計(jì)中文字符串長(zhǎng)度的方法。分享給大家供大家參考,具體如下:

中文字符計(jì)算為2個(gè)字符 英文字符計(jì)算為1個(gè)

代碼

/**
* 可以統(tǒng)計(jì)中文字符串長(zhǎng)度的函數(shù)
*
*/
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判斷字符長(zhǎng)度:中文,英文,數(shù)字。

這個(gè)方法很多。 記錄一個(gè)簡(jiǎn)單的。

mb_strlen($str, 'GBK');

缺點(diǎn)是要安裝mb庫(kù)。

不過(guò)這個(gè)還是有部分問(wèn)題待解決。

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

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

安全點(diǎn)的方法。

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

最后,下面這個(gè)才是正確的,通用的!

代碼:

/**作用:統(tǒng)計(jì)字符長(zhǎng)度包括中文、英文、數(shù)字
* 參數(shù):需要進(jìn)行統(tǒng)計(jì)的字符串、編碼格式目前系統(tǒng)統(tǒng)一使用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;
}

PS:這里再為大家推薦2款非常方便的統(tǒng)計(jì)工具供大家參考使用:

在線字?jǐn)?shù)統(tǒng)計(jì)工具:
http://tools.jb51.net/code/zishutongji

在線字符統(tǒng)計(jì)與編輯工具:
http://tools.jb51.net/code/char_tongji

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php常用函數(shù)與技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php獲取QQ頭像并顯示的方法

    php獲取QQ頭像并顯示的方法

    這篇文章主要介紹了php獲取QQ頭像并顯示的方法,提供了兩種方法供大家選擇,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • 淺析PHP遞歸函數(shù)返回值使用方法

    淺析PHP遞歸函數(shù)返回值使用方法

    淺析PHP遞歸函數(shù)返回值使用方法,需要的朋友可以參考一下
    2013-02-02
  • 10款實(shí)用的PHP開(kāi)源工具

    10款實(shí)用的PHP開(kāi)源工具

    這篇文章主要介紹了10款實(shí)用的PHP開(kāi)源工具,這些PHP開(kāi)源工具改善了PHP開(kāi)發(fā)人員的工作流程,使他們的開(kāi)發(fā)任務(wù)更簡(jiǎn)便和快捷,需要這方面資源的朋友請(qǐng)閱讀本文。
    2015-10-10
  • php的curl封裝類(lèi)用法實(shí)例

    php的curl封裝類(lèi)用法實(shí)例

    這篇文章主要介紹了php的curl封裝類(lèi)用法,以實(shí)例形式較為詳細(xì)的講述了curl封裝類(lèi)及其使用方法,并總結(jié)了GET與POST的用法,需要的朋友可以參考下
    2014-11-11
  • PHP設(shè)計(jì)模式之原型模式示例詳解

    PHP設(shè)計(jì)模式之原型模式示例詳解

    這篇文章主要給大家介紹了關(guān)于PHP設(shè)計(jì)模式之原型模式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使ecshop模板中可引用常量的實(shí)現(xiàn)方法

    使ecshop模板中可引用常量的實(shí)現(xiàn)方法

    據(jù)說(shuō)ecshop的模板類(lèi)是修改的smarty,不過(guò)個(gè)人感覺(jué)不是修改是完全重寫(xiě)了。它和smarty上只是模板標(biāo)簽上有相同的地方,同時(shí)閹割了很多功能
    2011-06-06
  • php使用PDO下exec()函數(shù)查詢執(zhí)行后受影響行數(shù)的方法

    php使用PDO下exec()函數(shù)查詢執(zhí)行后受影響行數(shù)的方法

    這篇文章主要介紹了php使用PDO下exec()函數(shù)查詢執(zhí)行后受影響行數(shù)的方法,結(jié)合實(shí)例形式分析了php在使用pdo進(jìn)行增刪改操作時(shí)exec()函數(shù)查詢操作執(zhí)行后受影響行數(shù)的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2017-03-03
  • phpy之PHP與Python互調(diào)庫(kù)實(shí)現(xiàn)AI編程

    phpy之PHP與Python互調(diào)庫(kù)實(shí)現(xiàn)AI編程

    這篇文章主要為大家介紹了phpy之PHP與Python互調(diào)庫(kù)實(shí)現(xiàn)AI編程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • PHP獲取文件絕對(duì)路徑的代碼(上一級(jí)目錄)

    PHP獲取文件絕對(duì)路徑的代碼(上一級(jí)目錄)

    PHP獲取文件絕對(duì)路徑,取得當(dāng)前文件所在的絕對(duì)目錄,取得當(dāng)前文件的上一層目錄名的實(shí)現(xiàn)代碼。
    2011-05-05
  • 深入php常用函數(shù)的使用匯總

    深入php常用函數(shù)的使用匯總

    本篇文章是對(duì)php常用函數(shù)的使用進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下
    2013-06-06

最新評(píng)論