Explication détaillée de la façon d'utiliser la fonction personnalisée PHP pour compter la longueur des chaînes chinoises

墨辰丷
Libérer: 2023-03-27 18:00:01
original
1794 Les gens l'ont consulté

Cet article présente principalement la méthode de comptage de la longueur des chaînes chinoises à l'aide des fonctions personnalisées PHP. Il résume et analyse les compétences opérationnelles de PHP liées à la détermination, à l'encodage et au fonctionnement du chinois sous forme d'exemples. 🎜>

Les caractères chinois comptent pour 2 caractères. Les caractères anglais comptent pour 1

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;
}
Copier après la connexion

Autre : PHP détermine la longueur des caractères : chinois, anglais, chiffres.

Il existe de nombreuses façons de procéder. Enregistrez-en un simple.

mb_strlen($str, &#39;GBK&#39;);
Copier après la connexion

L'inconvénient est que vous devez installer la bibliothèque mb.

Cependant, il reste encore quelques problèmes à résoudre.

Les règles de codage du code GB sont les suivantes : chaque caractère chinois se compose de deux octets, le premier octet va de 0XA1 à 0XFE, soit un total de 96 types. La plage du deuxième octet est respectivement 0XA1-0XFE, soit un total de 96 types. Un total de 96 * 96 = 8836 caractères chinois peuvent être définis à l'aide de ces deux octets. Il y a en réalité 6763 caractères chinois au total.

Les règles de codage du code BIG5 sont les suivantes : chaque caractère chinois se compose de deux octets, le premier octet va de 0X81 à 0XFE, soit un total de 126 types. La plage du deuxième octet est 0X40-0X7E, 0XA1-0XFE, soit un total de 157 types. En d’autres termes, un total de 126 * 157 = 19 782 caractères chinois peuvent être définis à l’aide de ces deux octets. Certains de ces caractères chinois sont couramment utilisés par nous, comme Yi et D. Ces caractères sont appelés caractères couramment utilisés et leurs codes BIG5 vont de 0XA440 à 0XC671, soit un total de 5 401 caractères. Les caractères moins couramment utilisés, tels que « tan » et « diao », sont appelés caractères moins couramment utilisés, allant de 0XC940 à 0XF9FE, soit un total de 7 652 caractères, le reste étant constitué de caractères spéciaux.

Une approche plus sûre.

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

Enfin, ce qui suit est correct et universel !

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;
}
Copier après la connexion

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

PHP Implémentation de la création d'un fichier, de l'écriture de données dans le fichier, de l'écrasement et de l'ajout Compétences Code_php

PHPUne méthode simple pour déterminer si une chaîne contient une autre compétence string_php

code php ci pour obtenir les valeurs de plusieurs éléments d'entrée portant le même nom dans le formulaire_php conseils

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal