如何在PHP邮件函数中添加换行符?

ljo96ir5  于 2023-02-03  发布在  PHP
关注(0)|答案(4)|浏览(319)

我有一个字符串,大约有100行,与此类似

My name is John. \r\n I am a boy. \r\n I am so in so

这里上面的字符串是来自备份,所以当我使用PHP邮件函数发送邮件时,它应该输出如下。

My name is John.
I am a boy.
I am so in so

但不幸的是,它给予了我这个输出。

My name is John. I am a boy. I am so in so

我使用的方法与此类似。

$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type:text/html;charset=UTF-8\r\n";
$msg = "Above Str";
mail(to@user, Subject, $msg, $header);

有谁能帮忙把这件事办得妥当些吗?

xnifntxz

xnifntxz1#

这个

$header .= "Content-type:text/html;charset=UTF-8\r\n";

告诉客户端将其呈现为HTML,其中不呈现换行符。
如果您希望它是HTML格式,您可以尝试:

$msg = nl2br($theString);

将换行符转换为HTML <br />
如果希望客户端将其呈现为文本而不是HTML,请将内容类型更改为text/plain

$header .= "Content-type:text/plain;charset=UTF-8\r\n";
falq053o

falq053o2#

在发送邮件之前,你可以尝试使用PHP的nl2br()函数将字符串中的换行符转换为HTML换行符:

$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type:text/html;charset=UTF-8\r\n";
$msg = nl2br('Above Str');
mail('to@user', 'Subject', $msg, $header);

这会将字符串中的换行符\r\n转换为HTML换行符
在发送电子邮件之前。

qkf9rpyu

qkf9rpyu3#

您指定了Content-type: text/html,所以您的电子邮件正文是一个HTML文档。因此,就像构建普通网页一样,换行符本身没有可见效果。
使用段落(<p>...</p>)或<br>来获得您想要的结果。

ql3eal8s

ql3eal8s4#

对于这种类型的输出,你只需要创建一个单独的页面,并添加所有你想通过邮件发送的内容。然后$msg =加载页面;然后在这里调用或加载你的那个页面,你的代码就会开始工作,试试看

相关问题