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'>• $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.