Php 使用邮件();添加不存在的附加返回中断

Php 使用邮件();添加不存在的附加返回中断,php,sendmail,Php,Sendmail,问题是在我使用邮件功能后,它添加了一个不存在的返回中断。 代码如下: $lesujet = "testing ..."; $letexts = "a bunch of text there is a return break here another return break as you see"; mail("myemail@gmail.com",$lesujet,$letexts,$headers); 这就是电子邮件的外观: 一串文

问题是在我使用邮件功能后,它添加了一个不存在的返回中断。 代码如下:

    $lesujet = "testing ...";
    $letexts = "a bunch of text       
    there is a return break here
    another return break as you see";

    mail("myemail@gmail.com",$lesujet,$letexts,$headers);
这就是电子邮件的外观: 一串文字

这里有回程休息


另一个返回中断,如您所见,这是因为当您在多行中初始化字符串时,它实际上会在每行后面的字符串中添加一个\r\n,请尝试:

$letexts = "a bunch of text "
. "there is a return break here "
. "another return break as you see ";

对于多行字符串init,请查看有关多行字符串最佳实践的讨论。

尝试使用str\u ireplace函数删除换行符:

$letexts = str_ireplace(array("\r","\n"),array('',''),$letexts);

谢谢你,但是变量$letexts来自数据库。数据来自用户提交的表单。我不能像那样手动断开。有没有办法让它在代码中工作而不是手动断开行?啊,那么我想Phil Cross的答案就是你正在寻找的答案。这不会消除所有的断开吗?如果你想保留段落,那会弄乱段落:$letexts=str_ireplace(“\r\n\r\n”、“{paragration}”、$letexts)$letexts=str_ireplace(数组(“\r”,“\n”)、数组(“,”)、$letexts)$letexts=str_ireplace(“{paragration}”,“\r\n\r\n”,$letexts);只需将双换行符转换为唯一标识符(这样您就知道段落的位置,删除所有换行符,然后将唯一标识符(标识实际段落)转换回段落。尽管我不确定这种方法是否是最好的方法。