La fonction substr() peut être utilisée pour diviser du texte, mais si le texte à diviser comprend des caractères chinois, vous rencontrerez souvent des problèmes. Dans ce cas, vous pouvez utiliser la fonction mb_substr()/mb_strcut. mb_substr()/mb_strcut est identique à celui de substr(), sauf qu'un paramètre supplémentaire doit être ajouté à la fin de mb_substr()/mb_strcut pour définir l'encodage de la chaîne. Cependant, la plupart des serveurs ne s'ouvrent pas. php_mbstring.dll Vous devez ouvrir php_mbstring.dll dans php.ini.
Par exemple :
<?php echo mb_substr(‘这样一来我的字符串就不会有乱码^_^’, 0, 7, ‘utf-8′); ?>
Sortie : Par ici mes mots
<?php echo mb_strcut(‘这样一来我的字符串就不会有乱码^_^’, 0, 7,’utf-8′); ?>
Sortie : Par ici
Comme peut être vu dans l'exemple ci-dessus, mb_substr divise les caractères par mots, tandis que mb_strcut divise les caractères par octets, mais ni l'un ni l'autre ne produira un demi-caractère...
Le paragraphe ci-dessus est extrait d'Internet, les résultats sont obtenus grâce à mes propres tests.
Compréhension personnelle :
La fonction mb_substr() représente une unité pour les caractères anglais ou chinois.
La fonction mb_strcut() a 3 unités pour les caractères chinois et 1 unité pour les caractères anglais.
Par exemple :
<?php $str = “这样abcd一来”; echo “mb_substr:”.mb_substr($str, 0, 5, ‘utf-8′); echo “<br>”; echo “mb_strcut:”.mb_strcut($str, 0, 8, ‘utf-8′); ?>
Le résultat de sortie est le suivant :
mb_substr: 这样abc mb_strcut: 这样ab
Pièce jointe :
La différence entre strlen et mb_strlen :
<?php $str=”中文a字1符”; echo strlen($str); echo “<br />”; echo mb_strlen($str,’UTF8′); ?>
Résultat de sortie :
14 6
Ce qui précède est le contenu des fonctions mb_substr() et mb_strcut() qui PHP utilise pour intercepter la longueur des chaînes chinoises. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !