通过cakephp,我保存了一个文本区域,它将被用作电子邮件消息到数据库中。我可以正确地保存它,但是当我试图从数据库中提取数据并使用该数据发送电子邮件时,我收到的电子邮件是1长行文本,而不是保持我在文本区域中键入的格式。是否可以保留发送电子邮件的格式?
e。g:如果在文本区我输入如下:
This is line 1.
This is line 2.
This is line 3.
我收到的电子邮件将是
This is line 1. This is line 2. This is Line 3.
我想要的就是我输入的:
This is line 1.
This is line 2.
This is line 3.
代码如下:应用::使用("CakeEmail"、"网络/电子邮件");
$recipients = str_replace(' ', '', $recipients);
$recipients = explode(',', $recipients);
$email = new CakeEmail();
$email->from($user_email);
$email->to($recipients);
$email->subject($final_subject);
$email->template('download_link_email');
$email->emailFormat('both');
$email->viewVars(array('url' => $this->generateUrl('datas', 'download', $group_id, $user_id, $email_id), 'final_subject' => $final_subject, 'final_recipient' => $final_recipients, 'final_message' => $final_message));
$email->send();
和download_link_email模板
<html>
<head>
<title><?php echo $final_subject; ?></title>
</head>
<body>
<h1><?php echo $final_subject; ?></h1>
<p><?php echo $final_message; ?></p>
<p><?php echo $this->Html->link('Click here to download', $url);?>.</p>
</body>
</html>
至于文本区域如何保存到数据库,它是标准的cakephp样式
您需要这样做:
$order = array("'r'n", "'n", "'r");
$replace = '<br />';
$final_message = str_replace($order, $replace, $final_message);
你可以点击这里查看str_replace
的更多信息或者您可以使用nl2br(感谢eggyal指出它)
nl2br($final_message)