Bilbo Baggins
Bilbo Baggins

Reputation: 3692

Capture newline from a textarea input

I have a textarea form in my html. If the user hits enter between 2 sentences that data should be carried over to my PHP.

Currently if the user enters:

Apple
Google
MS

and my PHP code is:

$str = $_POST["field"];

echo $str;

I get

Apple Google MS 

as the output. I want output to be like this

Apple
Google
MS

what should I do?

Upvotes: 20

Views: 29356

Answers (3)

Thilo
Thilo

Reputation: 17735

The newlines should be included in the string that you get from $_POST["field"]. However, if you then use that string as output in HTML, newlines will be treated as whitespace. To force the line breaks, use preg_replace("/\n/", "<br />", $str).

Upvotes: 3

Galen
Galen

Reputation: 30180

This is because when you echo it it's being displayed as HTML. A \n character is interpreted as a space. If you view the source you'll see your desired output.

To convert \n to <br> use:

echo nl2br( $str );

Upvotes: 0

Alix Axel
Alix Axel

Reputation: 154701

Try nl2br() instead:

echo nl2br($str);

Upvotes: 45

Related Questions