Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung, wie Sie die benutzerdefinierte PHP-Funktion verwenden, um die Länge chinesischer Zeichenfolgen zu zählen

Ausführliche Erklärung, wie Sie die benutzerdefinierte PHP-Funktion verwenden, um die Länge chinesischer Zeichenfolgen zu zählen

墨辰丷
墨辰丷Original
2018-05-23 17:25:251800Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Zählen der Länge chinesischer Zeichenfolgen mithilfe benutzerdefinierter PHP-Funktionen vorgestellt. Er fasst die Betriebsfähigkeiten von PHP in Bezug auf die Bestimmung, Codierung und Bedienung in Form von Beispielen zusammen.

Chinesische Zeichen werden als 2 Zeichen gezählt. Englische Zeichen werden als 1 gezählt.

Code

/**
* 可以统计中文字符串长度的函数
*
*/
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;
}

Anderes: PHP bestimmt die Zeichenlänge: Chinesisch, Englisch, Zahlen.

Es gibt viele Möglichkeiten, dies zu tun. Nehmen Sie ein einfaches auf.

mb_strlen($str, &#39;GBK&#39;);

Der Nachteil ist, dass Sie die MB-Bibliothek installieren müssen.

Es gibt jedoch noch einige Probleme, die gelöst werden müssen.

Die Codierungsregeln für GB-Code lauten wie folgt: Jedes chinesische Zeichen besteht aus zwei Bytes, das erste Byte reicht von 0XA1-0XFE, insgesamt 96 Typen. Der Bereich des zweiten Bytes beträgt 0XA1-0XFE, insgesamt 96 Typen. Mit diesen beiden Bytes können insgesamt 96 * 96 = 8836 chinesische Zeichen definiert werden. Insgesamt gibt es tatsächlich 6763 chinesische Schriftzeichen.

Die Kodierungsregeln für den BIG5-Code lauten wie folgt: Jedes chinesische Zeichen besteht aus zwei Bytes, das erste Byte reicht von 0X81-0XFE, insgesamt 126 Typen. Der Bereich des zweiten Bytes beträgt 0X40-0X7E, 0XA1-0XFE, insgesamt 157 Typen. Mit anderen Worten, mit diesen beiden Bytes können insgesamt 126 * 157 = 19782 chinesische Zeichen definiert werden. Einige dieser chinesischen Zeichen werden von uns häufig verwendet, wie z. B. Yi und D. Diese Zeichen werden als häufig verwendete Zeichen bezeichnet und ihre BIG5-Codes reichen von 0XA440 bis 0XC671, also insgesamt 5401 Zeichen. Weniger häufig verwendete Zeichen wie „tan“ und „diao“ werden als weniger häufig verwendete Zeichen bezeichnet und reichen von 0XC940 bis 0XF9FE, insgesamt 7652 Zeichen. Der Rest sind einige Sonderzeichen.

Ein sichererer Ansatz.

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

Abschließend ist das Folgende richtig und universell!

Code:

/**作用:统计字符长度包括中文、英文、数字
* 参数:需要进行统计的字符串、编码格式目前系统统一使用UTF-8
* 修改记录:
   $str = "kds";
  echo sstrlen($str,&#39;utf-8&#39;);
* */
function sstrlen($str,$charset) {
    $n = 0; $p = 0; $c = &#39;&#39;;
    $len = strlen($str);
    if($charset == &#39;utf-8&#39;) {
      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;
}

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird für das Studium aller hilfreich sein.


Verwandte Empfehlungen:

PHP Implementierung des Erstellens einer Datei, des Schreibens von Daten in die Datei, des Überschreibens und des Anhängens Code_php-Fähigkeiten

PHPEine einfache Methode, um festzustellen, ob eine Zeichenfolge weitere string_php-Fähigkeiten enthält

PHP-CI-Code zum Abrufen der Werte mehrerer Eingabeelemente mit demselben Namen im Formular_php-Tipps

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie Sie die benutzerdefinierte PHP-Funktion verwenden, um die Länge chinesischer Zeichenfolgen zu zählen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn