Aktueller Standort: Startseite> Neueste Artikel> Wie kombinieren Sie MB_Ereg- und Mb_split -Funktionen, um eine effiziente Segmentierung von Multibyte -Saiten zu erzielen? Praktischer Leitfaden

Wie kombinieren Sie MB_Ereg- und Mb_split -Funktionen, um eine effiziente Segmentierung von Multibyte -Saiten zu erzielen? Praktischer Leitfaden

gitbox 2025-08-27

3.. Verwenden Sie MB_Split, um die Segmentierung zu implementieren

 <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">// Stellen Sie die interne Zeichenkodierung fest</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">// Passen Sie englische Kommas und chinesische Kommas an,Ein oder mehrere aufeinanderfolgende</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>

Ausgangsergebnis:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; Apfel
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; Banane
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; Mandarine
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; Traube
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; Wassermelone
)
</span></span>

MB_SPLIT erkennt das chinesische Komma automatisch und vervollständigt die String -Segmentierung korrekt.


4. Vor dem Match mit MB_ereg

In einigen komplexen Szenarien möchten wir zuerst bestimmen, ob es in der Zeichenfolge ein bestimmtes Muster gibt, und dann segmentieren. Sie können mb_ereg verwenden:

 <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">// Keine Notwendigkeit zur Aufteilung</span></span><span>
}
</span></span>

Dies kann unnötige Segmentierungsvorgänge vermeiden und die Effizienz verbessern.


5. Dinge zu beachten

  • Unified Character Codierung: Verwenden Sie MB_Internal_encoding ("UTF-8"), um sicherzustellen, dass die Funktionen von UTF-8 einheitlich codiert werden, um verstümmelten Code zu vermeiden.

  • Regelmäßiger Modus schreiben: Die reguläre Expressionssyntax von Mbstring unterscheidet sich geringfügig. Achten Sie auf die korrekte Verwendung von quadratischen Klammern und entkommenen Zeichen.

  • Leistungsüberlegungen: Wenn Sie mehrere reguläre Übereinstimmungen an große Texte durchführen, kann die Kombination von MB_EREG für die Beurteilung und dann die Segmentierung die Effizienz verbessern.


6. Zusammenfassung

Indem wir MB_Ereg und Mb_split vernünftigerweise kombinieren, können wir:

  • Behandeln Sie die multibyte -codierte String -Segmentierung genau

  • Flexible Unterstützung für mehrere Separatoren

  • Die Leistung unter Bedingungen vor dem Spiel optimieren

Wenn Sie diese Fähigkeiten beherrschen, können Sie sich beim Umgang mit mehrsprachigen Texten wohl fühlen und häufige Fehlern für verstümmelte Code und Segmentierung vermeiden.


Beispiel vollständiger Code:

 <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">"Apfel,Banane,Mandarine,Traube,Wassermelone"</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>

Nach dem Laufen können Sie das richtige Split -Ergebnis erhalten.