<span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>); </span><span><span class="hljs-comment">// Définir le codage des caractères internes</span></span><span>
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"[,,]+"</span></span><span>; </span><span><span class="hljs-comment">// Correspondre aux virgules anglaises et aux virgules chinoises,Un ou plusieurs consécutifs</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_split</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>
Résultat de sortie:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => pomme
[</span><span><span class="hljs-meta">1</span></span><span>] => banane
[</span><span><span class="hljs-meta">2</span></span><span>] => Tangerine
[</span><span><span class="hljs-meta">3</span></span><span>] => Raisin
[</span><span><span class="hljs-meta">4</span></span><span>] => pastèque
)
</span></span>
MB_SPLIT reconnaît automatiquement la virgule chinoise et complète correctement la segmentation des chaînes.
Dans certains scénarios complexes, nous voulons d'abord déterminer s'il existe un certain motif dans la chaîne, puis le segmenter. Vous pouvez utiliser MB_EREG :
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-string">"[,,]"</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>)) {
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_split</span></span><span>(</span><span><span class="hljs-string">"[,,]+"</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$result</span></span><span> = [</span><span><span class="hljs-variable">$text</span></span><span>]; </span><span><span class="hljs-comment">// Pas besoin de fendre</span></span><span>
}
</span></span>
Cela peut éviter les opérations de segmentation inutiles et améliorer l'efficacité.
Encodage de caractères unifié: utilisez MB_internal_encoding ("UTF-8") pour vous assurer que les fonctions sont uniformément codées par UTF-8 pour éviter le code brouillé.
Écriture de mode régulier: La syntaxe d'expression régulière de la MBSTring est légèrement différente, faites attention à l'utilisation correcte des crochets et des caractères échappés.
Considérations de performances: lors de l'exécution de plusieurs correspondances régulières à de grands textes, la combinaison de MB_EREG pour juger, puis la segmentation peut améliorer l'efficacité.
En combinant raisonnablement MB_EREG et MB_SPLIT , nous pouvons:
Gérer avec précision la segmentation des chaînes codées mulabyte
Support flexible pour plusieurs séparateurs
Optimiser les performances dans les conditions d'avant-match
La maîtrise de ces compétences vous permettra d'être à l'aise lorsque vous traitez avec des textes multilingues et évitera les erreurs de code et de segmentation courbées courantes.
Exemple de code complet:
<span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">"pomme,banane,Tangerine,Raisin,pastèque"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-string">"[,,]"</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>)) {
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_split</span></span><span>(</span><span><span class="hljs-string">"[,,]+"</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$result</span></span><span> = [</span><span><span class="hljs-variable">$text</span></span><span>];
}
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>
Après l'exécution, vous pouvez obtenir le résultat fractionné correct.