如何回显MySQL数据库中的换行符?

I have created a simple wall post feature, like on FaceBook.

A user writes a post, the post is submitted to the database and then echoed back onto the website; that all works.

The only issue is, when the text is echoed back onto the website the line break isn't. So, I typed:

"Hey this is a post.

Here is a new paragraph"

and it displayed as:

"Hey this is a post. Here is a new paragraph"

I've seen a few posts here saying to use the nl2br() function and input /n for a new line, however I really don't want my users to have to write '/n' everytime they want a new line, they should just have to press the enter key on the keyboard.

The line break is stored in the database, so I have no idea why it isn't echoed out. Can anyone help?

Not sure if the code will be necessary but I'll post it just in case.

while($wallposts = mysql_fetch_assoc($getwallposts)) {
    $postid = $wallposts['id'];
    $postedby_username = $wallposts['postedby'];
    $wallpostdate = $wallposts['dateposted'];
    $wallpost = $wallposts['post'];

    $querypostedby_info = mysql_query("SELECT * FROM `users` WHERE `username`='$postedby_username'");

    //get the info above
    if (mysql_num_rows($querypostedby_info)===1) {
        $getpostedby_info = mysql_fetch_assoc($querypostedby_info);

        $postedby_id = $getpostedby_info['id'];
        $postedby_profilepicture = $getpostedby_info['profilepicture'];
    }

    //display the posts
    $wallpoststicker = 
    "
    <div id='wallpost-container'>
        <div id='wallpost-header'>
            <img src='$postedby_profilepicture'><div id='wallpost-header-by'><a href='/profile.php?id=$postedby_id'>$postedby_username</a> said:</div>
            <div id='wallpost-date'>&bull; $wallpostdate</div> 
        </div>
        <div id='wallpost-content'>
            $wallpost
        </div>
    </div>
    ";
}

PHP function nl2br converts newlines to "<br>" breaks.
So, $wallpost=nl2br($wallpost); should accomplish the task.

The answer(s) suggesting nl2br are great, I would go with that approach.

In your original question I think there is some confusion -- users don't type every time they want a new line. The slash is for escaping (special character, not a normal n).

On Windows machines, the Enter key is equivalent to where is carriage return and is new line. On Linux or similar, the Enter key is . 's ascii value is 13 and 's is 10.

So an EOL (End of Line) will either be or . Php has the nl2br function whose purpose is to replace all or with <br>, the html tag for a line break.