PHP nl2br() basic function
Can somebody please help me with this mail script.
I'm simply trying to send an html email and part of the message is from a user textarea, which puts in \r\n.
I seem to be unable to use nl2br or any other similar function. The code below isn't what I'm using but still produces the error.
The code:
$to = 'example@gmail.com';
$subject = 'Test Subject';
$message_var_1 = 'test1 \r\n test2 \r\n test3';
$message = nl2br开发者_如何学C("
<div>
<div>$message_var_1</div>
</div>
");
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion() . "\r\n";
mail($to, $subject, $message, $headers);
$message_var_1 = 'test1 \r\n test2 \r\n test3';
PHP parses \r
and \n
only within "
, not within '
. So nl2br
won't apply here.
$message_var_1 = "test1 \r\n test2 \r\n test3";
$message = '<div>
<div>'.nl2br($message_var_1).'</div>
</div>';
This ought to work.
This string contains embedded newlines so you'll end up with a few unwanted <br/>
s.
$message = nl2br("
<div>
<div>$message_var_1</div>
</div>
");
You can:
$message = "<div>" . nl2br($message_var_1) . "</div>";
Or, its much easier to use a <pre>
tag:
$message = "<pre>$message_var_1</pre>";
An alternative is to use HEREDOC.
$message = <<<OUTPUT
<div> some text
<div> some more text </div>
</div>
OUTPUT;
$message = nl2br($message);
Manual link for heredoc here
精彩评论