开发者

PHP nl2br() basic function

开发者 https://www.devze.com 2023-01-10 13:14 出处:网络
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.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消