sql >> Database >  >> RDS >> Mysql

opgeslagen in mysql-veld maar geen regeleinde bij echo


Bij uitvoer naar een tekstgebied moet u htmlentities . aanroepen htmlspecialchars als uw tekst HTML bevat.

<textarea><?php echo htmlspecialchars($text); ?></textarea>

Dat zal uw &lt;br /&gt; . converteren naar &lt;br /&gt; . Als u de &lt;br /&gt; . achterlaat ongecodeerd worden ze gewoon als HTML geïnterpreteerd.

Als het uw doel is om &lt;br /&gt; . weer te geven of andere HTML in het tekstgebied zoals het in de database is geschreven, u moet ontsnappen aan alle code die anders als HTML zou worden geïnterpreteerd.

bewerken

Als u regeleinden wilt uitvoeren in plaats van &lt;br /&gt; je kunt str_replace . gebruiken :

<textarea><?php echo str_replace('<br />', "\r\n", $textarea); ?></textarea>

Maar onthoud dat alle andere HTML wordt geïnterpreteerd en niet wordt weergegeven. Ik denk dat je je probleem bij de bron moet oplossen en de CRLF in de database moet opslaan als je de HTML niet nodig hebt.



  1. KRUIS/BUITEN TOEPASSEN in MySQL

  2. PostgreSQL's date_trunc in mySQL

  3. MySQL WHERE NOT IN extreem traag

  4. Twee kolommen voor automatisch verhogen of automatisch verhogen en dezelfde waarde in andere kolom