Ich versuche, in einer Zeichenfolge alle Nicht-Wort-Zeichen durch leere Zeichenfolge für Leerzeichen und die Summe aller mehrere Leerzeichen als ein einziges Leerzeichen zu ersetzen.PHP mb_ereg_replace nicht ersetzen, während preg_replace wie vorgesehen funktioniert
Der folgende Code tut dies.
$cleanedString = preg_replace('/[^\w]/', ' ', $name);
$cleanedString = preg_replace('/\s+/', ' ', $cleanedString);
Aber wenn ich versuche, mb_ereg_replace zu verwenden, passiert nichts.
$cleanedString = mb_ereg_replace('/[^\w]/', ' ', $name);
$cleanedString = mb_ereg_replace('/\s+/', ' ', $cleanedString);
$ cleanedString ist das gleiche wie das, wenn $ name im obigen Fall. Was mache ich falsch?
Danke das war der Fehler, den ich gemacht habe. Wenn meine Eingabe UTF-8 ist, gibt es eine Empfehlung bezüglich der zu verwendenden Methode? – Jithin
@Jithin Wenn es UTF-8 ist, können Sie auch 'preg_replace' mit dem 'u'-Flag verwenden:' preg_replace ('/\ s +/u ',' ', $ gereinigterString); ' – Artefacto
@Artefacto Vielen Dank. Können Sie mir bitte sagen, ob es sicher ist anzunehmen, dass preg_replace für die meisten Sprachen funktionieren wird, solange die Eingabe in UTF-8 kodiert ist? – Jithin