Reputation:
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>
";
}
Upvotes: 2
Views: 3817
Reputation: 393
PHP function
nl2br
converts newlines to "<br>
" breaks.
So, $wallpost=nl2br($wallpost);
should accomplish the task.
Upvotes: 5
Reputation: 5294
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 \n
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 \r\n
where \r
is carriage return and \n
is new line. On Linux or similar, the Enter key is \n
. \r
's ascii value is 13 and \n
's is 10.
So an EOL (End of Line) will either be \r\n
or \n
. Php has the nl2br
function whose purpose is to replace all \r\n
or \n
with <br>
, the html tag for a line break.
Upvotes: 1