PHP邮件发送时回车失败

PHP邮件发送时回车失败,php,Php,我知道这些年来人们问了很多关于这个问题的版本,但这里或任何地方的答案似乎都没有帮助 我有来自支持页面上单个文本区域的票证内容。当从数据库调用并使用nl2br回显到页面时,一切正常。但是,当应用于PHP邮件中的消息内容变量时,结果是不同的 $to = 'AnEmailAddress'; $message = ' <html> <head> <title>Message From The System</title>

我知道这些年来人们问了很多关于这个问题的版本,但这里或任何地方的答案似乎都没有帮助

我有来自支持页面上单个文本区域的票证内容。当从数据库调用并使用nl2br回显到页面时,一切正常。但是,当应用于PHP邮件中的消息内容变量时,结果是不同的

$to = 'AnEmailAddress';
$message = '
    <html>
    <head>
      <title>Message From The System</title>
    </head>
    <body>
     <table>
        <tr>
            <td>Message: </td><td>'.$ticket_content.'</td>
        </tr>
    </table>
    </body>
    </html>
    '."\r\n";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: <'.$user_email.'>' . "\r\n";

mail($to, $subject, $message, $headers);
把nl2br放在桌子上

<td>Message: </td><td>'.nl2br($ticket_content).'</td>
消息:'.nl2br($ticket_content)。'
我已尝试使用preg和str将\r\n替换为
。但所有这些都没有用,消息输出总是相同的

您好\r\n\r\n是否可以检查客户端是否有正确的颜色栏 当你和他约会时,请?\r\n\r\n


我也尝试过在没有表格和表格的情况下使用它,只使用纯文本并删除顶部的两个标题。无论我做什么,它都不会显示换行符。

简言之,
$ticket\u content
包含文字反斜杠+字母组合,而不是实际的生活提要字符。您没有给出任何关于如何创建变量的提示,但是您有问题误读了,更具体地说,是转义字符部分(我的重点):

如果字符串用双引号括起来,PHP将解释 特殊字符的更多转义序列


尝试使用字符串替换函数,如下所示-

$ticket_content = str_replace("\r\n", "<br>", $ticket_content);
$ticket\u content=str\u replace(“\r\n”、“
”、$ticket\u content);
这些是真正的\r和\n字符,还是纯文本中的仰泳后接-r或-n?您能打印字符串字节的十六进制值吗?回车符和换行符应该有不同的值。您已将问题标记为PhpMailer,但没有使用它。让您的生活更轻松,立即使用它!:)让我们不要他的演讲可能是关于“不要打电话给邮件”这一主题的又一个教训;如果我们看不到代码,就无法判断
$ticket\u content
有什么问题。如果是这样,当我使用preg和str replace尝试将它们转换为
时,它会不会将它们更改为literal
s?我直接从POST创建变量。$ticket\u content=$\u POST['ticket']^^屏幕上的哪一个回音很好,所以必须假设它保存换行符并正确返回数据?如果您键入
l33t
并用
e
替换
3
,您会得到
leet
。这是您首先编写的
leet
的证据吗?这甚至不是有效的PHP代码,您精确地省略了引号,它们是最有可能是根本问题。另外,这比
nl2br()
更好吗?我会给这个加1作为最接近的答案。它仍然不太有效,但给了我使用$ticket\u content=str\u replace('\r\n',“
”,$ticket\u content)的想法;确实如此,我相信我已经试过了。@Stephen无意冒犯,但我发现故意生成无效输出,然后编写代码来修复它是相当疯狂的。@lvaroG.Vicario我已经更新了我的答案。很抱歉,我把它与
jquery
混淆了,因为我很匆忙地看到了
$
:返回前面插入了“
”或“
”的字符串所有换行符(\r\n\n\r\n和\r)。
$ticket_content = str_replace("\r\n", "<br>", $ticket_content);