Leerezeichen aus Mitte entfernen
RuD
- php
0 Patrick Schröder0 RuD
0 Siechfred0 Genie0 seth_not@home
Seid gegrüßt!
Ich kenne die Funktionen trim,... zum Entfernen von Leerzeichen am Anfang/Ende eines Strings.
Nun habe ich aber einen String der ca. so aussieht:
$string = "adgjsdgjahgsd
jkhsadf lksdjf lsdfjlsdf
jkhdf kjahd nbsdfjksd sdfhj"; oder so ähnlich: Ich meine damit unregelmäßig viele Whitespaces in der Mitte.
Gibt es da eine Funktion, die sowas wie, alles was mehr als ein Leerzeichen hintereineander ist, zu einem umwandelt. Ich benötige die einzelnen Teile schon getrennt von einander aber halt nur mit einem Leerzeichen.
Danke schonmal im Voraus.
Hallöchen,
also ich hab in ner ähnlichen Richtung mal gegrübelt, bin da allerdings auch zu keinem wirklich brauchbarem Ergebnis gekommen. Wahrscheinlich kann man dem z.B. durch reguläre Ausdrücke beikommen.
Da aich aber auch diesen nicht mächtig bin, würd ich ne Funktion bauen, die immer 2 Leerzeichen zu einem umbaut und die Funktion solang in ner Schleife drüberlaufen lassen, bis sie false ergibt und das Problem gelöst sein dürfte.
Zugegeben... nicht wirklich elegant, aber reguläre Audrücke sind ein leichtes Rätsel für mich ;-) Und eine entsprechende Funktion kenne ich auch nicht.
Gruß Patrick
Seid gegrüßt!
Ebenso geht es mir auch mit RegEx. Deshalb danke ich dir für deinen Vorschlag. Ich werds gleich mal probieren.
Hell-O!
Gibt es da eine Funktion, die sowas wie, alles was mehr als ein Leerzeichen hintereineander ist, zu einem umwandelt. Ich benötige die einzelnen Teile schon getrennt von einander aber halt nur mit einem Leerzeichen.
http://php.net/preg_replace, Beispiel 5.
Siechfred
Hi
Ich bin nicht so gut in Regulären Ausdrücken, aber ich würde einfach sagen: /\s+/ replacen durch ein Leerzeichen
mfg
Genie
gudn tach!
Nun habe ich aber einen String der ca. so aussieht:
$string = "adgjsdgjahgsd
jkhsadf lksdjf lsdfjlsdf
jkhdf kjahd nbsdfjksd sdfhj"; oder so ähnlich: Ich meine damit unregelmäßig viele Whitespaces in der Mitte.Gibt es da eine Funktion, die sowas wie, alles was mehr als ein Leerzeichen hintereineander ist, zu einem umwandelt.
was denn nun? whitespaces oder leerzeichen?
willst du nur alle mehrfachen leerzeichen durch einzelne leerzeichen ersetzen, so geht dies z.b. mit
'/ +/ /g'
also preg_replace('/ +/ /g', $str);
.
willst du dagegen alle beliebigen folgen von mind. 2 whitespaces durch einfache leerzeichen ersetzen, so geht das mit
'/\s{2,}/ /g'
oder aeuquivalent dazu:
'/\s\s+/ /g'
willst du alle mehrfach hintereinander auftretenden whitespaces durch einfache leerzeichen ersetzen, so geht das mit
'/(\s)\1+/ /g'
damit werden z.b. zwei oder mehr leerzeichen ersetzt; oder zwei oder mehr tabulatoren... aber z.b. nicht "\t \t ".
sollen alle mehrfach hintereinander auftretenden whitespaces geloescht (also zu einem zusammengeschrumpft) werden, so ist das mit
'/(\s)\1+/$1/g'
zu bewerkstelligen.
erklaerung zu den einzelnen bestandteilen lassen sich im nu finden, z.b. per google, wikipedia (regexp) sowie dem perl- (perldoc perlre) oder php-manual.
prost
seth