PHP nl2br()基本功能

时间:2010-08-03 11:47:33

标签: php line-breaks

有人可以帮我解决这个邮件脚本。

我只是想发送一封html电子邮件,部分消息来自用户textarea,它放入\ r \ n。

我似乎无法使用nl2br或任何其他类似的功能。下面的代码不是我正在使用的,但仍会产生错误。

代码:

$to  = 'example@gmail.com';

$subject = 'Test Subject';

$message_var_1 = 'test1 \r\n test2 \r\n test3';
$message = nl2br("
    <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);

3 个答案:

答案 0 :(得分:5)

$message_var_1 = 'test1 \r\n test2 \r\n test3';

PHP仅在\r内解析\n",而不在'内。因此nl2br不适用于此。

$message_var_1 = "test1 \r\n test2 \r\n test3";
$message = '<div>
     <div>'.nl2br($message_var_1).'</div>
</div>';

这应该有用。

答案 1 :(得分:1)

此字符串包含嵌入的换行符,因此您最终会得到一些不需要的<br/>

$message = nl2br("
    <div>
    <div>$message_var_1</div>
    </div>
");

你可以:

$message = "<div>" . nl2br($message_var_1) . "</div>";

或者,使用<pre>代码更容易:

$message = "<pre>$message_var_1</pre>";

答案 2 :(得分:-1)

另一种方法是使用HEREDOC。

$message = <<<OUTPUT
 <div> some text 
   <div> some more text </div>
 </div>
OUTPUT;
$message = nl2br($message);

heredoc here

的手动链接