Основная функция PHP nl2br ()

Может кто-нибудь, пожалуйста, помогите мне с этим почтовым скриптом.

Я просто пытаюсь отправить 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 здесь