Zeilenumbruch entfernen funktioniert nicht
hansatwebde
- php
0 eddi0 hansatwebde
0 Tom
Hallo,
Ich habe versucht mittels dem ereg_replace Befehl den Zeilenumbruch in einer Variable zu löschen. Zwar wird am der stelle, wo der Zeilenumbruch ist die ersetzte Zeichenfolge angezeigt, aber die Zeilen stehen immer noch untereinander.
Gibt es da eine Möglichkeit den auch zu ersetzen?
Mfg hansatwebde
Hallo,
Ich habe versucht mittels dem ereg_replace Befehl den Zeilenumbruch in einer Variable zu löschen.
wie hast Du es versucht (zeige bitte den Quellcode)?
Warum nutzt Du nicht str_replace()?
Gruß aus Berlin!
eddi
Hallo,
also der Quelltext ist $var=ereg_replace("\n", " ", $na);
Mein Browser zeigt im Quelltext die Zeichen   an aber die Zeilen stehen halt noch untereinander.
Ich habe den Text aus einer Sql Datenbank und habe ihn mit fetch_assoc ausgelesen.
Hello,
also der Quelltext ist $var=ereg_replace("\n", " ", $na);
Mein Browser zeigt im Quelltext die Zeichen   an aber die Zeilen stehen halt noch untereinander.
Ich habe den Text aus einer Sql Datenbank und habe ihn mit fetch_assoc ausgelesen.
Wenn der Browser "normal" ist, ergänzt er automatisch die brutal verstümmelten Zeilenumbrüche wieder...
"\n" wird zu "\r\n"
"\r" wird zu "\r\n"
"\r\n" bleibt "\r\n"
Also bitte mal im Hexeditor anschauen, was da passiert ist.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo,
Ja das \r\n wars!
Vielen dank!!!
Mfg hansatwebde
Re:
also der Quelltext ist $var=ereg_replace("\n", " ", $na);
Die Funktionen *_replace() haben einen eingbauten Automatismus search "\n" nicht zu verarbeiten, wenn direkt davor ein "\r" steht. Dein Code müßte also lauten:
$var=str_replace("\r\n"," ",$na);
Gruß aus Berlin!
eddi
hi,
Die Funktionen *_replace() haben einen eingbauten Automatismus search "\n" nicht zu verarbeiten, wenn direkt davor ein "\r" steht.
Wie kommst du darauf?
Folgender Code zeigt, dass das nicht stimmt:
$test = "a\r\nb";
for($i=0, $l=strlen($test); $i<$l; $i++) {
echo ord($test{$i})."-";
}
echo "<br />\n";
$test = str_replace("\n", "", $test);
for($i=0, $l=strlen($test); $i<$l; $i++) {
echo ord($test{$i})."-";
}
Ich würde da auch eher Toms Vermutung teilen, dass der Browser "verkrüppelte" Zeilenumbrüche - wo also von einem \r\n nach der Ersetzung nur noch \r übrig geblieben ist - trotzdem interpretiert, bzw. ggf. ergänzt.
gruß,
wahsaga
Hallo,
Wie kommst du darauf?
läßt sich jetzt bei mir auch nicht mehr nachvollziehen. Allerdings hatte ich genau das Problem vor zwei Wochen, um es zu lösen habe ich auch in die Sourcen schauen müssen...
Nur welches pre-released (5.1.3/6.0-dev) es war, weiß ich nicht. Also ist das...
Die Funktionen *_replace() haben einen eingbauten Automatismus search "\n" nicht zu verarbeiten, wenn direkt davor ein "\r" steht.
...Schwachsinn^3
Gruß aus Berlin!
eddi
Hello,
Ich habe versucht mittels dem ereg_replace Befehl den Zeilenumbruch in einer Variable zu löschen.
Wie hast Du das genau gemacht?
Zwar wird am der stelle, wo der Zeilenumbruch ist die ersetzte Zeichenfolge angezeigt, aber die Zeilen stehen immer noch untereinander.
Wer zeigt das an?
Gibt es da eine Möglichkeit den auch zu ersetzen?
Was wurde denn genau ersetzt und wie hast Du das an welcher Stelle des Datenflusses überprüft?
Ich nehme an, dass Du etwas (Unvollständiges) veranlasst hast, was an anderer Stelle (Browser) automoatisch wiederhergestellt wurde. Aber das ist Kugelismus :-)
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom