Cet article présente principalement des exemples de méthodes d'interception de chaînes PHP chinoises , analyse et compare les fonctions courantes d'interception de chaînes et donne un exemple complet pour résoudre l'interception de chaînes chinoises PHP. Question, les amis dans le besoin peuvent se référer à
L'exemple de cet article résume la méthode d'interception des chaînes chinoises en PHP, qui est une technique très pratique. Partagez-le avec tout le monde pour votre référence. La méthode spécifique est analysée comme suit :
L'utilisation de la fonction PHP substr pour intercepter des caractères chinois peut provoquer des caractères tronqués. La raison principale est que substr peut « voir » un caractère chinois en deux.
La solution est la suivante :
1. Utilisez l'interception mb_substr de la bibliothèque d'extensions mbstring pour éviter les caractères tronqués.
2. Écrivez vous-même la fonction d'interception, mais l'efficacité n'est pas aussi élevée que l'utilisation de la bibliothèque d'extension mbstring.
3. S'il s'agit simplement de sortir la chaîne interceptée, elle peut être implémentée de la manière suivante : substr($str, 0, 30).chr(0).
La fonction substr() peut diviser le 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 le même que celui de substr() est similaire, 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.
Donnez 2 exemples :
① Exemple mb_substr
<?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); //输出:这样一来我的字 ?>
② Exemple mb_strcut
<?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); //输出:这样一 ?>
On peut voir à partir de l'exemple ci-dessus que mb_substr est basé sur des mots. Divisez les caractères et mb_strcut divise les caractères par octets, mais aucun ne produira un demi-caractère.
Comment intercepter des chaînes de texte chinois sans caractères tronqués en utilisant PHP :
<?php //此函数完成带汉字的字符串取串 function substr_CN($str,$mylen){ $len=strlen($str); $content=''; $count=0; for($i=0;$i<$len;$i++){ if(ord(substr($str,$i,1))>127){ $content.=substr($str,$i,2); $i++; }else{ $content.=substr($str,$i,1); } if(++$count==$mylen){ break; } } echo $content; } $str="34中华人民共和国56"; substr_CN($str,3);//输出34中 ?>
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!