PHP Leerstellen enfernen?

rocket81

Lt. Commander
Dabei seit
Dez. 2007
Beiträge
1.054
Moin,
Ich hab mal ne Frage mit folgendem Code, kann ich alle Leerstellen aus einem Text entfernen:
Code:
<?php

$string = 'Wort Wort';

echo str_replace(' ','',$string);

?>
Allerdings entfernt dieser Code auch alle "Zeilensprünge", wie kann ich das verhindern, also so, dass wirklich nur alle " " entfernt werden!?
Danke
Felix
 

Hanni2k

Commander
Dabei seit
Apr. 2006
Beiträge
2.219
was meinst du mit zeilensprünge?

vieleicht mal str_replace(" ", "", $string) probieren, weiß net ob das anders arbeitet.

tabulatoren sollte man mit \t und zeilenumbrüche mit \n entfernen können
 

XunnD

Lieutenant
Dabei seit
März 2006
Beiträge
728
Code:
str_replace(' ','',$string);
...ersetzt nur das Leerzeichen und keine anderen Zeichen.

Browser brechen nach einer gewissen Satzweite um. Das tut er an allen sog. Whitespaces im Quelltext. Leerzeichen sind solche Whitespaces (neben LF, TAB, etc.)

Keine Whitespaces, keine Zeilenumbrüche.

Keine Arme, keine Kekse.
 

rocket81

Lt. Commander
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
1.054
Hmja, ich hab hier ein Text, bei dem alle Leerstellen entfernt werden sollen, aber nicht die Zeilenumbrüche...
mit dem oben genannten Code entfernt er aber alle "Leerzeichen", egal ob " ", oder Tabulatoren, oder Zeilenumbrüche.
Der Text wird dann quasi in einem "Wort" ausgegeben. :/
 

Hanni2k

Commander
Dabei seit
Apr. 2006
Beiträge
2.219
kann ich mir net vorstellen, TABS sind mit \t eingefügt. Vll probleme mit der codierung? Welche codierung hat der text und wie ist das php eingestellt.
 

Gobble-G

Lieutenant
Dabei seit
Nov. 2002
Beiträge
727
Da stimme ich Hanni2k zu. Ich habe es soeben unter PHP 4.4.8 ausprobiert. Es werden wirklich nur Leerzeichen (Space) entfernt. Tabulatoren (\t) und Umbrüche (\n) bleiben drin.
Welche PHP-Version nutzt du?

Du schaust dir schon den Quellcode im Browser an (rechte Maustaste!) und nicht die Ansicht im Browser selbst?
Einen Browser interessieren Tabulatoren und Umbrüche in der Darstellung nämlich einen Scheiß. Da musst du schon mit HTML und nicht mit normalem Text arbeiten.
Guck dir für Zeilenumbrüche mal nl2br() an. Für Tabulatoren fällt mir gerade nichts ein. Man könnte aber einen Tabulator z.B. durch vier &nbsp; ersetzen...

Willst du, dass der Browser nicht versucht, HTML zu interpretieren sondern Text, so wie er ist, darzustellen, kannst du den Header der Ausgabe auch auf Plaintext setzen. Die PHP-Hilfe sollte dir genug Auskunft geben.
 

rocket81

Lt. Commander
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
1.054
hmja, ich hab die umbrüche nicht mit "\n" geschrieben, sonder nur mit "enter" ist ja eig. logisch, dass der die mit raus nimmt. ^^
aber dann jmd. ne idee, wie der nur die leerzeichen entfernt, muss jetzt nicht zwingend mit php sein...einfach generell?
thx
 

Gobble-G

Lieutenant
Dabei seit
Nov. 2002
Beiträge
727
Ist schon klar, dass du einen normalen Umbruch mit Enter gemacht hast. Ich glaube aber inzwischen immer mehr, dass du dir das Ergebnis falsch anguckst. Du gibst den String mit echo aus. Der Browser wird standardmäßig versuchen, das als HTML zu interpretieren. Umbrüche, Tabulatoren und multiple Leerzeichen werden dabei nicht umgesetzt. Daher guck dir das Ergebnis im HTML-Quellcode an:

Firefox: rechte Maustaste \ Seitenquelltext anzeigen
IE: rechte Maustaste \ Quelltext anzeigen


Zum Verständis gib den String mal ohne str_replace() aus. Du wirst sehen, dass dort ebenfalls keine Tabulatoren und Umbrüche - wohl aber die Leerzeichen - ausgegeben werden:
PHP:
echo $string;
Ist das jetzt klar geworden?
 

rocket81

Lt. Commander
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
1.054
jop, alles klar ... hat funktioniert :)
Danke für deine Hilfe und natürlich auch danke an alle anderen :)
Gruß
Felix
 
Top