初学者。
我有一个带有textarea的表单来返回评论。我从helpvid.net获得了一个PHP脚本来发送表单。因此,表单被发送到PHP文件。然后表单通过电子邮件将信息返回给我。
问题是评论是作为一个大的磨合段发送的。即使用户在字段中点击Return以创建新行,电子邮件中返回的文本也在一行上。如果用户点击两次返回以创建一个新段落,那么这些段落将作为一个长段返回。我希望返回的文本具有用户输入的换行符。
以下是返回注释的PHP文件的代码:
$name = $_POST['name'];
$company = $_POST['company'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$email = $_POST['email'];
$optin = $_POST['optin'];
$comments = $_POST['comments'];
$body = <<<EOD
<br><br>
Please send samples to: <br /><br />
$name <br />
$company <br />
$address <br>
$city, $state $zip <br><br />
Email: $email <br><br />
Opt-In to occasional email list?: $optin <br><br />
Comments: $comments <br>
EOD;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body,
$headers);
有没有办法修改此代码,或者我的HTML文件返回分段符?
答案 0 :(得分:8)
nl2br是你的朋友:
$comments = nl2br($_POST['comments']);
答案 1 :(得分:6)
http://www.php.net/manual/en/function.nl2br.php
这应该这样做。基本上它会将换行符转换为<br />
标记。
请注意,如果您确实要发送纯文本电子邮件,这应该不是问题。您确定您的电子邮件客户端没有剥离换行符吗?我知道Outlook有时会这样做。值得一试的东西......
是的,nl2br()
适用于您的情况。但是,如果您删除了原始的<br>
代码,只使用了\n
或硬换行符,则无需使用此功能。 <br>
代码是您电子邮件中唯一的HTML。它没有良好的形成。你最好删除它们和行$headers .= "Content-type: text/html\r\n";
,这样你就可以发送一个普通/文本电子邮件。