I have what is a simple problem that hopefully has a simple solution:
I have a site written in PHP and HTML, using a Linux server with MySQL.
It has a form where users fill in some personal info, including a textarea in which
they are meant to copy and paste a test CV.
I have also set up a back end for my client where she can query the database to see who
registered and retrieve their info.
My problem is that when I query and echo the content of the table row that contains the
CV (alot of text), the line breaks are all gone – everything is printed in one line.
Does someone know if I can solve this by using the right kind of collation/character encoding
for that specific row that contains the users’s cvs? I am hoping that such collation exists that saves and maintains line breaks.
Collation has nothing to do with it – collations and charsets won’t touch your newlines at all. If you want to see it, look at the page source of the echo’d text.
HTML, however, treats line breaks like all other whitespace under normal circumstances, so they won’t be visible when you echo them to a browser. You shouldn’t be outputting plain text as HTML anyway, because they’re not the same. You must convert the plain text to HTML first; a simple method is to call
htmlspecialchars()andnl2br()on the text (in that order, otherwise htmlspecialchars will eat your newly-created br tags and turn them into<br/>. Failing to do so will not only create undesired output, it can also be a major security risk (XSS).