web-dev-qa-db-ja.com

PHPメールの改行

私は次のコードを持っています:

$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) 動かない。

29
Michael

\r\n 代わりに \n

\ nと\ r\nの違い

これは、電子メールの改行に適用されることに注意してください。他のシナリオについては、rokjarcの answer を参照してください。

45
Brendan Bullen

これは古い質問ですが、とにかく誰かを助けるかもしれません。

私はこの目的のためにPHP_EOLを使用する傾向があります(クロスプラットフォームの互換性のため)。

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

ブラウザで結果を表示する場合は、"<br>"を使用する必要があります。

EDIT:正確な質問は電子メールに関するものなので、状況は少し異なります。純粋なテキストのメールについては、Brendan Bullenの 受け入れられた回答 をご覧ください。 HTMLメールの場合は、単にHTMLフォーマットを使用します。

31
Rok Jarc

一重引用符または二重引用符を使用してこの文字列を作成していますか?\rと\ nは、二重引用符と埋め込み変数でのみ機能します。例えば:

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

出力されます:

Hello \n $foo!

しかし:

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

出力されます:

Hello
bar!
19
Harold1983-

Htmlまたはhtml電子メールに出力する場合は、<br>の代わりに<br />または\nを使用する必要があります。

単なるテキストメールの場合:'の代わりに"を使用している可能性がありますか?ただし、値も挿入されません...

6
jeroen

"Line1<br>Line2"を使用できます

6
Amjad Abu Saa

編集:電子メールを送信するためのクラスにHTML電子メールのオプションがあり、<br />を使用できます

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 />";
  • ブラウザで改行が発生し、変数がコンテンツに置き換えられます。
4
Martin Vseticka

コードをhtmlとして出力する場合-/ nを変更->
そして$ messageをエコーし​​ます。

2
m0g

プログラミング言語で改行を挿入すると、この文字コードは「\ n」になります。 phpはそれを出力しますが、htmlsの改行のためにhtmlはそれを表示できません
。この仕事をする簡単な方法は、すべての「\ n」を「
"。したがって、コードは

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

このコードを追加した後、すべての出力操作にpreタグを使用する必要はありません。

このWebサイトからこのansをコピー

2
user2540315