Sven Rautenberg: Zeilenumbruchproblem

Beitrag lesen

Moin!

<form name="message" action="speichern.php" method="post">

<textarea cols="100" rows="5">&nbsp;</textarea>
  <input type="submit" value="Speichern">
</form>


>   
> Mein Problem ist jetzt folgendes:  
> Der Text, den ich in diese Textarea eingebe, besitzt genau einen Zeilenumbruch. Wenn ich mir jetzt in der speichern.php den Inhalt von $\_POST[0] (also meinen gespeicherten Textarea-Inhalt) ausgeben lasse, erhalte ich einen einzeiligen String OHNE Zeilenumbruch!! Warum??  
  
Wie läßt du dir den String ausgeben?  
  

> Das Interessante dabei ist vor allem, dass, wenn ich $\_POST[0] in eine Textdatei schreibe, der Zeilenumbruch plötzlich berücksichtigt wird, und ich in der Datei dann 2 Zeilen habe, obwohl ich bei der einfachen Ausgabe mit echo oder print nur eine Zeile hatte!!  
  
Dann ist der Zeilenumbruch vorhanden, du siehst ihn in deiner Testausgabe nur nicht. Dran gedacht, dass HTML die Zeilenumbrüche (sowie auch multiple Leerzeichen, Tabulatoren etc.) zu einem einzigen Leerzeichen zusammenfaßt?  
  
Benutze <pre>, um diesen Whitespace im Browser sichtbar zu machen, oder betrachte dir den ausgegebenen HTML-Quelltext (darin steht der Zeilenumbruch).  
  

> Ich würde nämlich gerne den Zeilenumbruch (wird ja normalerweise durch ein \n dargestellt) maskieren, indem ich das \n durch \\n ersetze, aber das Problem is schlicht und ergreifend, dass in meinem String kein \n ist!?  
  
Warum maskieren? Bedenke, dass die Darstellung "\n" lediglich eine von PHP verwendete Form ist, um das ASCII-Zeichen Nr. 10 für den Programmierer handhabbar eingeben zu können. Du siehst es im Editor so. Interpretiert wird es aber direkt beim Parsen als ASCII-Zeichen 10, nicht als "Backslash-n".  
  
 - Sven Rautenberg

-- 
"Love your nation - respect the others."