PHPのecho内に改行を追加するにはどうすればよいですか?[閉まっている]


92

文に改行を追加しようとしていたので/n 、次のコードを追加しました。

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

何らかの理由で、結果としてサーバーエラーが発生しました。どうすれば修正できますか?


4
バックスラッシュを使用します。これは適切にエスケープされた文字ではありません\n。しかし、サーバーエラーがこの試みに関連していない、見た目にApacheのログとチェック__(arg)ドキュメンタリー
マレクSebera

1
Stackoverflowへようこそ。従ってください尋ねるアドバイスあなたが投稿する前に確認するために必要なすべての質問を。あなただけが何かを欲し、それがどのようにプログラムされているかを自問することは、それ自体がプログラミングの質問とはみなされないことを覚えておいてください。
hakre 2012年

回答:


255

\n改行です。/nではありません。


の使用 \nして

1.ページに直接エコーします

文字列をページにエコーしようとしている場合:

echo  "kings \n garden";

出力は次のようになります。

kings garden

gardenPHPはサーバーサイド言語であり、出力をHTMLとして送信するため、改行を取得できません。HTMLで改行を作成する必要があります。HTMLは理解していません\n。あなたは使用する必要がありますnl2br()その関数。

それが何をするか:

返した文字列<br />または<br>全ての改行の前に挿入(\ R \ nは、\ nは\ R、\ n、および\ r)と。

echo  nl2br ("kings \n garden");

出力

kings
garden

\n二重引用符でエコー/印刷していることを確認してください。そうでない場合は、文字通り\ nとしてレンダリングされます。phpインタープリターはそのままの概念で一重引用符で文字列を解析するため

so "\n" not '\n'

2.テキストファイルに書き込む

これで、テキストファイルにエコーする\nと、そのまま使用でき、次のように新しい行にエコーされます。

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

出力は次のようになります。

kings
 garden

1
上記を詳しく説明します。これは機能します-例-> echo "<html>"。 "\ n"; または「キングスガーデン」をエコーし​​ます。 "\ n"; これにより、最初の行の後に改行が追加されます。エコーの後に改行を追加したいときに、Googleが私をここに導きました。
MarcoZen 2016

18

次のように、echoを使用する場合はbrを使用する必要があります。

echo "Thanks for your email" ."<br>". "Your orders details are below:"

そしてそれは正しく動作します


1
これはHTMLドキュメントでは
機能しません

1
php /サーバー側の言語ファイルでそれらをエコーし​​ているときは機能しません
MarcoZen 2016

13

改行文字は\n、次のようになります。

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');

プレフィックス__(2つのアンダースコア)は何ですか?
ピーターモーテンセン

1
@PeterMortensen一部のPHPフレームワークでは、国際化をサポートするための関数です。元の投稿で使用されていたため、回答に追加しました。
noetix

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.