wake-up-neo.com

Ersetzen mehrerer Leerzeichen durch ein einzelnes Leerzeichen

Ich versuche, mehrere Leerzeichen durch ein einzelnes Leerzeichen zu ersetzen. Wenn ich ereg_replace Verwende, bekomme ich eine Fehlermeldung, dass es veraltet ist.

ereg_replace("[ \t\n\r]+", " ", $string);

Gibt es einen identischen Ersatz dafür. Ich muss mehrere " " Leerzeichen und mehrere nbsp Leerzeichen durch ein einzelnes Leerzeichen ersetzen.

178
Dani

Verwenden Sie preg_replace() und anstelle von [ \t\n\r] verwenden \s:

$output = preg_replace('!\s+!', ' ', $input);

From Basis-Syntaxreferenz für reguläre Ausdrücke :

\ d,\w und\s

Kurzschriftzeichenklassen für Ziffern, Wortzeichen (Buchstaben, Ziffern und Unterstriche) und Leerzeichen (Leerzeichen, Tabulatoren und Zeilenumbrüche). Kann innerhalb und außerhalb von Zeichenklassen verwendet werden.

376
cletus
$output = preg_replace('/\s+/', ' ',$input);

\ s ist eine Abkürzung für [ \t\n\r]. Mehrere Leerzeichen werden durch ein einzelnes Leerzeichen ersetzt.

44
Somnath Muluk
preg_replace("/[[:blank:]]+/"," ",$input)
38
ghostdog74