Может кто-нибудь, пожалуйста, помогите мне с этим почтовым скриптом.
Я просто пытаюсь отправить html-адрес электронной почты, а часть сообщения – из текстовой области пользователя, которая помещается в \ r \ n.
Кажется, я не могу использовать nl2br или любую другую подобную функцию. Код ниже – это не то, что я использую, но все же выдает ошибку.
Код:
$to = 'example@gmail.com'; $subject = 'Test Subject'; $message_var_1 = 'test1 \r\n test2 \r\n test3'; $message = nl2br(" <div> <div>$message_var_1</div> </div> "); $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'X-Mailer: PHP/'.phpversion() . "\r\n"; mail($to, $subject, $message, $headers);
$message_var_1 = 'test1 \r\n test2 \r\n test3';
PHP анализирует \r
и \n
только внутри "
, а не внутри '
. Таким образом, nl2br
не будет применяться здесь.
$message_var_1 = "test1 \r\n test2 \r\n test3"; $message = '<div> <div>'.nl2br($message_var_1).'</div> </div>';
Это должно сработать.
Эта строка содержит встроенные строки, поэтому вы получите несколько нежелательных <br/>
s.
$message = nl2br(" <div> <div>$message_var_1</div> </div> ");
Ты можешь:
$message = "<div>" . nl2br($message_var_1) . "</div>";
Или его гораздо проще использовать <pre>
:
$message = "<pre>$message_var_1</pre>";
Альтернативой является использование HEREDOC.
$message = <<<OUTPUT <div> some text <div> some more text </div> </div> OUTPUT; $message = nl2br($message);
Ручная ссылка для heredoc здесь