$text = 'blah<br /><br />blah';
$text = preg_replace('#<br />#', "\n", $text);
当我在浏览器中查看它时,它会输入双换行符。但是,当我尝试通过mail()
函数将其发送到我的电子邮件地址时,它只输出一个换行符。
有谁知道这是什么原因?以及如何使其发挥作用?
我正在尝试发送纯文本,而不是HTML。
Content-Type: text/plain; charset="utf-8"
答案 0 :(得分:0)
尝试使用PHP_EOL
代替跨平台兼容的解决方案,尽管"\n"
应该是99%的罚款。另外,我建议str_replace()而不是preg_replace(),用正则表达式解析(尽管这很简单)有点慢(*),
$text = "blah<br /><br />blah"; # with double quotes, not to have it treated literal.
$text = str_replace(array('<br />','<br/>','<br>'), PHP_EOL, $text);
(*)我在等待关于这个的批评者