Ich versuche, mehrere Leerzeichen durch ein einzelnes Leerzeichen zu ersetzen. Wenn ich ereg_replace
verwende, erhalte ich einen Fehler darüber, dass es veraltet ist.php Ersetzen mehrerer Leerzeichen mit einem einzelnen Leerzeichen
ereg_replace("[ \t\n\r]+", " ", $string);
Gibt es einen identischen Ersatz dafür? Ich muss mehrere " "
weiße Räume und mehrere nbsp
weiße Räume mit einem einzelnen Leerraum ersetzen.
@Cletus: Dieser würde ein einzelnes Leerzeichen durch Leerzeichen ersetzen. Denkst du nicht etwa wie: preg_replace ('/ (?: \ S \ s + | \ n | \ t) /', '', $ x) * wird * besonders bei Text mit mehreren einzelnen Leerzeichen * effizienter? – codaddict
@codaddict: zufällig, vor einem Moment habe ich Benchmarks auf realen Daten, Ergebnis (für Anrufe auf ~ 8300 verschiedene Textartikel): '/ (?: \ S \ s + | \ n | \ t) /' = > 1410 (langsamster), '/ \ s + /' => 611 (ok'ish), '/ \ s \ s + /' => 496 (am schnellsten). Der letzte ersetzt nicht das einzelne '\ n' oder' \ t', aber das ist ok für meinen Fall. – Frunsi
/\ s {2,}/u '- Wenn Sie ein UTF-8-Problem haben, fügen Sie – user956584