Auge: Zeilenumbrüche

Beitrag lesen

Hallo

in meiner Datenbank habe ich Text stehen, dieser geht über mehrere Zeilen die mit einem Enter getrennt sind. Wenn ich es ausgebe

<?php echo htmlspecialchars($user_eingabe); ?>

sehe ich davon leider nichts. Nutzte ich nl2br macht er mir solche Zeichen rein <br /> aber diese werden nur ausgegeben und bewirken keinen Umbruch.

Das ist, so wie du es beschreibst, klar.

Das htmlspecialchars benötige ich doch, dass mir nichts "böses" ausgegeben wird?

htmlspecialchars macht genau das, was es mit HTML-Tags zu tun hat, es entschärft sie. Wenn du nun nl2br vor htmlsecialchars ausführst, werden auch die Umbruch-Tags entschärft. Hier kommt es also auf die Reihenfolge an. Funktionen werden zeilenweise oder bei Schachtelungen von innen nach außen ausgeführt.

<?php  
  
$user_eingabe = htmlspecialchars($user_eingabe);  
$user_eingabe = nl2br($user_eingabe);  
echo $user_eingabe;  
  
?>

… und …

<?php echo nl2br(htmlspecialchars($user_eingabe)); ?>

… sind funktionsgleich. Zuerst werden eventuell vorhandene unerwünschte Zeichen maskiert und danach die erwünschten Umbrüche eingefügt.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3