3

Certain fields in our mysql db appear to contain newline characters so that if I SELECT on them something like the following will be returned for a single SQL call:

Life to be sure is nothing much to lose But young men think it is and we were young 

If I want to preserve the line breaks when displaying this field on a webpage, is the standard solution to write a script to replace '\n\r' with a br HTML tag or is there a better way?

Thanks!

0

3 Answers 3

11

Assuming PHP here...

nl2br() adds in <br /> for every \n. Don't forget to escape the content first, to prevent XSS attacks. See below:

<?php echo nl2br(htmlspecialchars($content)); ?> 
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for this, is there a way to add 2 <br> tags?
4

HTML is a markup language. Regardless of how many linebreaks you put in the source code, you won't see anything from it back in the presentation (of course assuming you aren't using <pre> or white-space:pre). HTML uses the <br> element to represent a linebreak. So you basically indeed need to convert the real and invisible linebreaks denoted by the characters xA (newline, linefeed, LF, \n) and/or xD (carriage return, CR, \r) by a HTML <br> element.

In most programming languages you can just do this by a string replace of "\n" by "<br>".

Comments

1

You can wrap it in <pre> .. </pre>.

2 Comments

<pre> has a semantic that goes well beyond newlines, and I think does not apply well to the case.
Yes. In the end it all depends on the task.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.