K@llenMedlem sedan mars 20032 654 inlägg
function formatText($text) {
$text = nl2br ( $text );
$text = htmlspecialchars( $text, ENT_QUOTES );
$text = stripslashes( $text );
return $text;
}
Visst all html försvinner i ett naffs, men jag får <br> istället för mellanslag i inlägget. Hur gör man för att slippa html, och smatidigt ha kvar enterslagen i texten?
PhorpherMedlem sedan feb. 20002 059 inlägg
Ta bort:
$text = nl2br ( $text );
Du säger först att du får en BR-tagg vid varje mellanslag. Men sen ändrar du dig till radbrytning. Antar att du menar det senare.
K@llenMedlem sedan mars 20032 654 inlägg
Jo, men nu hamnar all text i en lång rad, fast att användaren delat upp texten i stycken (med enter) i formuläret.
PhorpherMedlem sedan feb. 20002 059 inlägg
Jag tror jag missuppfattade dig.
Anledningen till att du får <BR> i texten beror på att du först konverterar alla dina radbrytningar (\n) till BR-taggar. Efter det så använder du htmlspecialchars() för att få bort all html-taggar. Det innebär att alla dina nyss genererade BR-taggar omsluts av & lt och & gt istället. Därför ser du BR-taggarna som text.
Lösningen är att anropa nl2br() efter htmlspecialchars() :)
K@llenMedlem sedan mars 20032 654 inlägg
Ahhh, det skulle man ju kunnat lista ut själv. ;)
Tack för hjälpen Phorpher! :D