PHP разрыв строки в письмах

php newline

151160 просмотра

8 ответа

У меня есть следующий код:

$message = "Good news! The item# $item_number on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\n
The seller, $bid_user is making this offer.\n
\nItem Title : $title\n

\nAll the best,\n
$bid_user\n
$email\n
";

echo $message;
$htmlContent = $baseClass->email_friend($item_number, $title, $bid_price, $bid_user, $mcat, $message, $email, $VIEWSTATE, $EVENTVALIDATION, $URL);

Проблема в том, что новый разрыв строки (\n) не работает.

Автор: Michael Источник Размещён: 13.11.2019 11:30

Ответы (8)


46 плюса

Решение

Попробуй \r\nвместо\n

Разница между \ n и \ r \ n

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

Автор: Brendan Bullen Размещён: 08.07.2010 06:25

31 плюса

Я знаю, что это старый вопрос, но в любом случае это может кому-то помочь.

Я склонен использовать PHP_EOLдля этих целей (из-за кросс-платформенной совместимости).

echo "line 1".PHP_EOL."line 2".PHP_EOL;

Если вы планируете показать результат в браузере, то вам придется использовать "<br>".

РЕДАКТИРОВАТЬ: так как ваш точный вопрос об электронной почте, все немного по-другому. Чистые текстовые электронные письма см. В принятом ответе Брендана Буллена . Для электронных писем HTML вы просто используете форматирование HTML.

Автор: Rok Jarc Размещён: 28.03.2013 03:00

19 плюса

Вы строите эту строку, используя одинарные или двойные кавычки? \ r и \ n работают только с двойными кавычками, а также со встроенными переменными. Например:

$foo = 'bar';
echo 'Hello \n $foo!';

будет выводить:

Hello \n $foo!

Но:

$foo = 'bar';
echo "Hello \n $foo!";

будет выводить:

Hello
bar!
Автор: Harold1983- Размещён: 08.07.2010 06:03

6 плюса

Если вы выводите на html или html электронную почту, вам нужно будет использовать <br>или <br />вместо \n.

Если это просто текстовое электронное письмо: вы, возможно, используете 'вместо "? Хотя тогда ваши значения тоже не будут вставлены ...

Автор: jeroen Размещён: 08.07.2010 06:02

6 плюса

вы можете использовать "Line1<br>Line2"

Автор: Amjad Abu Saa Размещён: 13.09.2013 09:22

4 плюса

РЕДАКТИРОВАТЬ: Может быть, ваш класс для отправки электронных писем имеет опцию для электронных писем HTML, а затем вы можете использовать

1) Двойные кавычки

$output = "Good news! The item# $item_number  on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\nThe seller, $bid_user is making this offer.\n\nItem Title : $title\n\nAll the best,\n $bid_user\n$email\n";

Если вы используете двойные кавычки, то \ n будет работать (в браузере не будет новой строки, но вы увидите исходный код в вашем браузере - символы \ n будут заменены на новые строки)

2) Одиночные кавычки не имеют эффекта, как двойные кавычки выше:

$output = 'Good news! The item# $item_number  on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\nThe seller, $bid_user is making this offer.\n\nItem Title : $title\n\nAll the best,\n $bid_user\n$email\n';

все символы будут напечатаны как есть (даже переменные!)

3) Разрывы строк в HTML

$html_output = "Good news! The item# $item_number  on which you placed a bid of <br />$ $bid_price is now available for purchase at your bid price.<br />The seller, $bid_user is making this offer.<br /><br />Item Title : $title<br /><br />All the best,<br /> $bid_user<br />$email<br />";
  • В вашем браузере будут разрывы строк, и переменные будут заменены их содержимым.
Автор: Martin Vseticka Размещён: 08.07.2010 06:06

2 плюса

если вы выводите код в виде html - change / n ->
и делаете echo $ message;

Автор: m0g Размещён: 08.07.2010 06:13

2 плюса

Когда мы вставляем любой разрыв строки с языком программирования, код символа для этого - "\ n". php выводит это, но html не может отобразить это из-за разрыва строки htmls
. Самый простой способ выполнить эту работу - заменить все "\ n" на "
". поэтому код должен быть

str_replace("\n","<br/>",$str);

после добавления этого кода вам не придется использовать предварительный тег для всех операций вывода.

скопировал этот ответ с этого сайта :

Автор: user2540315 Размещён: 01.07.2013 08:04
Вопросы из категории :
32x32