PHP Leerstellen enfernen?

rocket81

Lt. Commander
Registriert
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
 
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
 
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.
 
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. :/
 
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.
 
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.
 
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
 
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?
 
jop, alles klar ... hat funktioniert :)
Danke für deine Hilfe und natürlich auch danke an alle anderen :)
Gruß
Felix
 
Zurück
Oben