我正在处理联系表单。联系消息可能有换行符。他们需要转换为<br>
。没有任何工作。这里是我的测试代码:PHP的nl2br不工作(也不是替代品)
mail($email_to, $email_subject,
'<html><head><title>' . $email_subject . '</title></head><body>'
. $text_before_message
. str_replace(array("\\r\\n","\\r","\\n"), "<br />", stripslashes($email_body))
. str_replace(array("\r\n","\r","\n"), "<br />", stripslashes($email_body))
. nl2br(stripslashes($email_body))
. str_replace(array('\\r\\n','\\r','\\n'), "<br />", stripslashes($email_body))
. str_replace(array('\r\n','\r','\n'), "<br />", stripslashes($email_body))
. stripslashes(nl2br($email_body))
. nl2br($email_body)
. $text_after_message
. '</body></html>'
, 'MIME-Version: 1.0' . "\r\n"
. 'Content-type: text/html; charset=UTF-8' . "\r\n"
. 'From: ' . $email_from . "\r\n"
. 'To: ' . $email_to . "\r\n"
);
当进入:
Test.
Test.
在电子邮件的结果(重复,因为测试的数次):
Test.Test.
这与常规的间隔换行符(不是<br>
),如果我看源代码。
为什么PHP这样对我?这个问题似乎被问了很多,但我能找到的解决方案......没有什么区别。
如何将换行符转换为html分隔符?
今天早上调试的时候,我发现换行符已经被HTML转义了,所以我需要这个:'。 str_replace(array(' ',' ',' '),'
',stripslashes($ email_body))'无论如何。 – DSKrepps