Zeilenumbruch entfernen
Erich
- php
Hallo zusammen.
Ich habe ein simples Problem. Ich fand viele Lösung dazu, aber keine funktioniert.
Folgendes: Ich habe einen String. Der String kommt per Post von einem Formular (Textfeld).
Beispiel:
Line 1
Line 2
Line 3
Nun will ich die Zeilenumbrüche durch nichts ersetzen, also wie
Line 1Line 2Line 3
Folgendes geht nicht:
echo $text;
echo "<br>------<br>";
$text = str_replace('\n', '', $text);
$text = str_replace('\r\n', '', $text);
$text = str_replace('\r', '', $text);
echo $text;
Gibt jedoch
Line 1
Line 2
Line 3
------
Line 1
Line 2
Line 3
aus statt, dass es das zweite Mal ohne die Zeilenübruche wäre.
Wenn ich nl2br() nehme, macht er folgendes:
Line 1
Line 2
Line 3
------
Line 1<br />
Line 2<br />
Line 3
Aber die wirklichen Zeilenumbrüche, sind immer noch da. D.h. zuerst nl2br und dann die <br /> killen geht auch nicht.
Weiss von euch jemand, wie ich diese wirklich wegbringe?
Danke und Grüsse aus der Schweiz,
Erich
Hi!
Nun will ich die Zeilenumbrüche durch nichts ersetzen, also wie
Line 1Line 2Line 3
Folgendes geht nicht:
echo $text;
echo "<br>------<br>";
$text = str_replace('\n', '', $text);
$text = str_replace('\r\n', '', $text);
$text = str_replace('\r', '', $text);
echo $text;
Machs mal so:
$search = array("\n", "\r\n", "\r");
$text = str_replace($search, '', $text);
In einfachen Anführungszeichen werden Sachen wie \n, \r\n, etc. nicht als Zeilenumbruch erkannt. Die Lösung mittels eines Arrays macht das Ganze dann noch mal ein bisschen schöner ;-)
Grüße,
Fabian St.
Hi
In einfachen Anführungszeichen werden Sachen wie \n, \r\n, etc. nicht als Zeilenumbruch erkannt.
Also, ich kenn mich mit PHP schon ziemlich gut aus, aber davon hab ich ja noch nie was gehört, noch dazu klingt das extrem unlogisch, warum es an einfachen Anführungszeichen liegt.
Nicht, dass ich dir nicht glaube, ganz im Gegenteil, aber ich würde trotzdem gern den Grund wissen.
Hi,
Also, ich kenn mich mit PHP schon ziemlich gut aus, aber davon hab ich ja noch nie was gehört,
Das ist eigentlich ein Widerspruch.
Das Wissen über die Basis-Typen einer Sprache und wie deren Literale notiert werden, gehört zu den absoluten Grundlagen.
noch dazu klingt das extrem unlogisch, warum es an einfachen Anführungszeichen liegt.
Ob logisch oder nicht, in PHP ist das so definiert: http://www.php.net/manual/en/language.types.string.php
cu,
Andreas
Hello,
$search = array("\n", "\r\n", "\r");
$text = str_replace($search, '', $text);
besser:
$search = array("\r\n", "\n", "\r");
Die Elemente des Arrays werden der Reihe nach abgearbeitet.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
echo $begrüßung;
$search = array("\n", "\r\n", "\r");
besser:
$search = array("\r\n", "\n", "\r");Die Elemente des Arrays werden der Reihe nach abgearbeitet.
Wenn sowieso alle Zeilenumbruchszeichen raus müssen, dann ist die Kombination der Zeichen irrelevant. \n und \r einzeln reicht völlig.
$search = array("\n", "\r");
echo "$verabschiedung $name";
Hello,
$search = array("\n", "\r\n", "\r");
besser:
$search = array("\r\n", "\n", "\r");Die Elemente des Arrays werden der Reihe nach abgearbeitet.
Wenn sowieso alle Zeilenumbruchszeichen raus müssen, dann ist die Kombination der Zeichen irrelevant. \n und \r einzeln reicht völlig.
$search = array("\n", "\r");
Beim Ersetzen gegen nichts, also dem Löschen hast Du da wohl Recht.
Beim Ersetzen durch Leerzeichen oder '<br>' (oser sonstigen Zeichen) ist es nicht egal.
Aber das wird schon wieder Philosophie...
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom