Re: textarea new line to mysql database

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



PHPScriptor wrote:
Hello,

How do you guys handle this "problem".

Just a form with a textarea. When I use enters in the textarea it's saved to
the db like this:

database:
"first line
second line"

when I edit the value in the form:
"first line
second line"

when I output the value to html:
"first linesecond line" (unless I use nl2br())

Is there a way that I could save it to the db that will work for db, output
and edit without using any other function like nl2br?

I run all text area through a filter that removes the carriage return [ preg_replace('/\r/','',$input) ] and save it in the database with any newline characters.

When calling data from the database, I can then use newline as a delimiter for explode generate an array where each element of the array is a distinct line of text - and then do whatever I want with the lines.

Effectively what I usually do is the same thing as nl2br - but since I do everything in DOMDocument I have to do it myself (create text nodes for each array element and create break nodes between them).

If I'm going to a pre field or back to a text area (IE to edit the data) then I don't have to do anything.

I do NOT recommend running nl2br before it goes into the database - as that means you may have to convert the breaks when re-using the data elsewhere, and the proper way to make a break depends upon the output type (IE <br> for html or <br /> for xhtml, etc.) - so keep the newline character in the database and convert to what you need when you call the data from the database.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux