Maison >développement back-end >tutoriel php >Explication détaillée de la façon d'utiliser la fonction personnalisée PHP pour compter la longueur des chaînes chinoises
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
/** * 可以统计中文字符串长度的函数 * */ 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; }
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, 'GBK');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; }Enfin, ce qui suit est correct et universel ! Code :
/**作用:统计字符长度包括中文、英文、数字 * 参数:需要进行统计的字符串、编码格式目前系统统一使用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; }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.
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!