纯文本邮件的文本区域,换行符问题

问题描述 投票:0回答:2

在订购表中,我提供了一些选项以添加一些说明。到目前为止,涉案人员使用电子邮件进行订购,实际上,他们在实际订购旁边添加了很多备注。该表格有一个文本区域。当我输入

 Dit is een oefening.
Komt de mail
a) wel aan
b) geeft hij de juiste weergave? 

PHP中发布的文本区域显示为:

Dit is een oefening.\r\nKomt de mail\r\na) wel aan\r\nb) geeft hij de juiste weergave?

到目前为止,我认为很好。但是在邮件中,文本没有按预期中断,完全按照该字符串的形式复制]

Dit een oefening。\ r \ nKomt de mail \ r \ na)wel aan \ r \ nb)geeft hij de juiste weergave?

是否有某种方法(最好是一种简单的方法)可以格式化这样的文本字符串以达到预期的效果?

字符串($ xtravraag)包含在一行中if ($xtravraag != '') {$emailvraagk = "\r\n MAILBERICHT BIJ BESTELLING \r\n\r\n $xtravraag";} else {$emailvraagk = '';}

我已经尝试过了,完全弄乱了结果:if ($xtravraag != '') {$emailvraagk = "\r\n".' MAILBERICHT BIJ BESTELLING'."\r\n\r\n".$xtravraag;} else {$emailvraagk = '';}

导致]

\ r \ n MAILBERICHT BIJ BESTELLING \ r \ n \ r \ n $ xtravraag

并且该标头本来可以正常工作。

邮件标题包括:

        'Mime-Version: 1.0' . "\r\n" .
        'Content-Type: text/plain; charset=UTF-8' . "\r\n" .         
        'Content-Transfer-Encoding: quoted-printable' . "\r\n" .
        'X-Mailer: PHP/' . phpversion()

删除传输编码是没有选择的。常用的变音符号是需要的。这需要UTF-8。

根据页面中的代码要求
 <fieldset><legend>Overige vragen of opmerkingen die geen bestelling zijn</legend>
  <textarea name='xtravraag' id='xtravraag' cols='76' rows='5'> </textarea>
  </fieldset>

然后发布

if (isset($_POST['xtravraag'])) {$xtravraag = $mysqli->real_escape_string(trim($_POST['xtravraag']));} else{$xtravraag='';}
echo  "extravraag: $xtravraag <br>";        //MOET WEG BIJ OPLEVERING 

并且包括显示整行的回声

在订购表中,我提供了一些选项以添加一些说明。到目前为止,涉案人员使用电子邮件进行订购,实际上,他们在实际订购旁边添加了很多备注。表单具有...

php email textarea line-breaks
2个回答
0
投票

有时mail()函数无法正确显示"\r\n"行中断,您可以尝试将其设置为多行,如下所示:


-1
投票

尝试使用php nl2br()函数格式化textarea内容。

© www.soinside.com 2019 - 2024. All rights reserved.