Comment compter correctement le nombre de caractères chinois en PHP ? C'est un problème qui me préoccupe depuis longtemps. Il existe de nombreuses fonctions en PHP qui peuvent calculer la longueur d'une chaîne. Par exemple, dans l'exemple suivant,
.strlen
mb_strlen
mb_strwidth
Ces trois fonctions sont utilisées pour tester la longueur des chaînes statistiques et voir combien d'octets le chinois est compté :
[code]echo strlen("你好ABC") . ""; # 输出 9 echo mb_strlen("你好ABC", 'UTF-8') . ""; # 输出 5 echo mb_strwidth("你好ABC") . ""; #输出 7
À partir du test ci-dessus, nous pouvons voir :
strlen
compte les caractères chinois pour 3 octets,
mb_strlen
indépendamment du chinois ou de l'anglais, compte pour 1 section de caractères, et
mb_strwidth
compte le chinois comme 2 octets, donc
mb_strwidth
est ce que nous voulons : chinois 2 octets, anglais 1 octet .
Il est également recommandé d'utiliser
mb_strimwidth
pour intercepter les chaînes, qui est également calculée selon la méthode du chinois 2 octets, anglais 1 octet, et si le nombre de mots dépasse les exigences interceptées, cette fonction peut également ajouter automatiquement '...' à la fin.
[code]mb_strimwidth($post_excerpt,0,240,'...','utf-8');
Notez que l'ajout du paramètre d'encodage « utf-8 » à la fin peut éviter le problème de l'interception chinoise tronquée.
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!