phpカスタム関数は中国語文字列の長さを統計する方法の小結を実現する

2678 ワード

この例では、phpカスタム関数が中国語文字列の長さを統計する方法について説明します.皆さんの参考にしてください.具体的には以下の通りです.
中国語の文字は2文字に計算され、英語の文字は1文字に計算されます.
コード#コード#

/**
*               
*
*/
function abslength($str)
{
  $len=strlen($str);
  $i=0;
  while($i 
 

また、php判断文字長:中国語、英語、数字.
この方法はたくさんあります.簡単な記録をします.

mb_strlen($str, 'GBK');


欠点はmbライブラリをインストールすることです.
しかし、これはまだ一部の問題が解決されていない.
GBコード符号化規則は、漢字1文字あたり2バイトで構成され、1バイト目の範囲は0 XA 1−0 XFEの96種類である.2バイト目の範囲はそれぞれ0 XA 1−0 XFEで96種類である.この2バイトで96*96=8836の漢字を定義できます.実際には6763の漢字がある.
BIG 5符号符号化規則は、漢字1文字あたり2バイトで構成され、1バイト目の範囲は0 X 81−0 XFEの126種類である.2バイト目の範囲はそれぞれ0 X 40−0 X 7 E,0 XA 1−0 XFE,計157種類であった.つまり、この2バイトで126*157=19782種類の漢字を定義することができます.これらの漢字の一部は私たちがよく使うもので、例えば一、丁、これらの字は私たちが常用字と呼んで、そのBIG 5コードの範囲は0 XA 440-0 XC 671で、全部で5401個です.乱数、変調など、あまり使われない字は、私たちは二次常用字と呼ばれ、範囲は0 XC 940-0 XF 9 FEで、7652個で、残りはいくつかの特殊な文字です.
安全点の方法.

function StrLenW($str)
{
    $count = 0;
    $len = strlen($str);
     for($i=0; $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;
}


PS:ここでは、非常に便利な統計ツールを2つお勧めします.
オンラインワード統計ツール:http://tools.jb51.net/code/zishutongji
オンライン文字統計と編集ツール:http://tools.jb51.net/code/char_tongji
PHPに関する詳細については、「php常用関数とテクニックのまとめ」、「php文字列(string)用法のまとめ」、「PHP配列(Array)操作テクニック大全」、「PHP基本文法入門チュートリアル」、「php+mysqlデータライブラリ操作入門チュートリアル」、「phpよくあるデータベース操作テクニックのまとめ」を参照してください.
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.