PHP新邮件中断行

Mic*_*el 30 php newline

我有以下代码:

$message = "Good news! The item# $item_number on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\n
The seller, $bid_user is making this offer.\n
\nItem Title : $title\n

\nAll the best,\n
$bid_user\n
$email\n
";

echo $message;
$htmlContent = $baseClass->email_friend($item_number, $title, $bid_price, $bid_user, $mcat, $message, $email, $VIEWSTATE, $EVENTVALIDATION, $URL);
Run Code Online (Sandbox Code Playgroud)

问题是新的换行符 (\n)不起作用.

Bre*_*len 46

尝试\r\n代替\n

\n和\ r \n之间的区别

应该注意,这适用于电子邮件中的换行.对于其他场景,请参阅rokjarc的回答.

  • 纯文本电子邮件中的新行应始终为CRLF("\ r \n"):[RFC 2822](http://www.faqs.org/rfcs/rfc2822.html) (2认同)

Rok*_*arc 31

我知道这是一个老问题,但无论如何它可能对某人有所帮助.

我倾向于PHP_EOL用于此目的(由于跨平台兼容性).

echo "line 1".PHP_EOL."line 2".PHP_EOL;
Run Code Online (Sandbox Code Playgroud)

如果您计划在浏览器中显示结果,则必须使用"<br>".

编辑:因为你的确切问题是关于电子邮件,事情有点不同.对于纯文本电子邮件,请参阅Brendan Bullen的接受答案.对于HTML电子邮件,您只需使用HTML格式.


Har*_*83- 19

您是使用单引号还是双引号构建此字符串?\ r和\n仅使用双引号以及嵌入变量.例如:

$foo = 'bar';
echo 'Hello \n $foo!';
Run Code Online (Sandbox Code Playgroud)

将输出:

Hello \n $foo!
Run Code Online (Sandbox Code Playgroud)

但:

$foo = 'bar';
echo "Hello \n $foo!";
Run Code Online (Sandbox Code Playgroud)

将输出:

Hello
bar!
Run Code Online (Sandbox Code Playgroud)


jer*_*oen 6

如果输出到html或html电子邮件,则需要使用<br><br />代替\n.

如果它只是一个文本电子邮件:您是否可以使用'而不是"?虽然那么你的价值也不会被插入......


Amj*_*Saa 6

您可以使用 "Line1<br>Line2"