我只是在工作的邮件功能和有格式化它的问题。我想以HTML格式发送邮件。换行符应转换为换行符。目前我正在使用这些函数
$mail_filtered = nl2br($mail_filtered);
$mail_filtered = htmlspecialchars($mail_filtered);
如果我使用这个函数,小写字母会正确显示,但是换行符在邮件中显示为<br/>
标记。邮件头看起来像这样:
"Content-Type: text/html", "Charset=utf-8"
我做错了什么?
如果您使用nl2br
将HTML换行符添加到"物理"换行序列并随后应用htmlspecialchars
,则您还将添加的<br />
转换为<br />
,然后显示为<br />
:
$str = "foo'nbar>baz";
var_dump(nl2br($str) === "foo<br />'nbar>baz"); // bool(true)
var_dump(htmlspecialchars(nl2br($str)) === "foo<br />'nbar>baz"); // bool(true)
反过来做,首先使用htmlspecialchars
,然后使用nl2br
:
var_dump(nl2br(htmlspecialchars($str)) === "foo<br />'nbar>baz"); // bool(true)