Не могу заставить nl2br работать с помощью почтовой программы PHP

Я пытаюсь опубликовать некоторую информацию с предыдущей страницы, а затем отправить ее по электронной почте.

Информация, размещенная на предыдущей странице, находится внутри текстовой области, и я хочу, чтобы она автоматически добавляла новые строки, когда пользователь нажимал ввод при вводе текста в этой текстовой области.

Пробовал через nl2br, не работает. Мой код:

Сообщение с предыдущей страницы:

$BREAKINGNEWS=nl2br($_POST['BREAKINGNEWS']);

Взяв эту информацию и поместив ее в сообщение электронной почты:

$message .=  nl2br($BREAKINGNEWS);

Как видите, я поставил его дважды, но он все еще не работает и выводит \r\n в конце каждой строки.

Я пытался сделать это только в POST и только в сообщении $, но оно отказывается работать.

Любые идеи?


person Noah Goodrich    schedule 14.09.2011    source источник
comment
Кажется, что в то время как сообщение происходит, обратная косая черта будет добавлена ​​​​к вашему контенту. не могли бы вы подтвердить, что содержимое '\n' или '\\\n'.   -  person Satish Sasanapuri    schedule 14.09.2011
comment
Вам нужно показать больше своего кода, иначе не ясно, в чем ваша проблема. nl2br работает как заявлено.   -  person hakre    schedule 14.09.2011


Ответы (3)


Возможно, вы используете экранирование SQL. Вы должны применять экранирование SQL только тогда, когда вывод будет использоваться в запросе SQL. Старайтесь не избегать данных при использовании nl2br().

person Ramje    schedule 27.08.2013

Заменить "\r\n" на "\n"?

$text = nl2br(str_replace("\r\n", "\n", $_POST['BREAKINGNEWS']));

EDIT: Вы устанавливаете IsHTML(true) в PHPMailer?

$mail = new PHPMailer();
$mail->IsHTML(true);
person DRiFTy    schedule 14.09.2011
comment
Я добавил правку выше в свой ответ, вы это сделали? Может быть, ему не нравится HTML? - person DRiFTy; 14.09.2011
comment
Я использую HTML в другом месте в почте, и все работает нормально. Когда я пытаюсь добавить этот код, который вы только что опубликовали, все это не работает. - person Noah Goodrich; 14.09.2011

Пожалуйста, попробуйте это:

$text = str_replace("\r\n", "
", $text;
person Olli    schedule 14.09.2011