私はこれを書いています:
echo "foo";
echo "\n";
echo "bar";
そして、「bar」は下の行には書かれていません。
何が間違っていますか?
ハビ
HTMLの改行は、<br>
ではなく\n
で表されます。
PHP=で\n
を使用すると、ソースコードに改行が作成され、HTMLソースコードレイアウトはHTML画面レイアウトに接続されません。
プレーンテキストストリームに改行文字を挿入する場合は、OSに依存しないグローバルPHP_EOLを使用できます
echo "foo";
echo PHP_EOL ;
echo "bar";
HTMLの用語では、ページのソースコードを見ると、fooとbarの間に改行が表示されます。
たとえば、選択ボックスの値のループなどを出力し、「よりきれいな」または後で読みやすいhtmlソースコードを持っている場合に役立ちます。例えば.
foreach( $dogs as $dog )
echo "<option>$dog</option>" . PHP_EOL ;
プレーンテキストを記述する場合は、コンテンツタイプがContent-Type: text/plain
に設定されていることを確認する必要があります。例:
header('Content-Type: text/plain');
HTMLを扱う場合、2つのオプションがあります。 1つは、<br>
(またはXHTMLの場合は<br />
)を使用して新しい行を挿入することです。もう1つは、プレーンテキストを<pre>
要素に配置することです(この場合、「pre」は事前にフォーマットされていることを表します)。
PHPはHTMLを生成します。あなたがしたいことがあります:
echo "foo";
echo "<br />\n";
echo "bar";
テキストに改行がある場合は、nl2br php関数を使用します。
<?php
$string = "foo"."\n"."bar";
echo nl2br($string);
?>
これはブラウザでよく見えるはずです
Webブラウザーで出力を表示していると仮定すると、少なくとも2つのオプションがあります。
<pre>
ステートメントでテキストブロックを囲みます
\n
をHTML <br>
タグに変更します(<br/>
も同様です)
PHPでは、\ nを改行として使用できます。
<?php
echo"Fo\n";
echo"Pro";
?>
出力:
Fo
プロ
言及されていないため、CSS white-spaceプロパティも使用できます。
body{
white-space:pre-wrap;
}
これは、空白を保持するようにブラウザに指示するので、
<body>
<?php
echo "hello\nthere";
?>
</body>
表示する
hello
there
ページのソースコードを調べると、新しい行に書き込まれます。ブラウザでレンダリングするときに新しい行に表示する場合は、代わりに<br />
タグを使用する必要があります。
これは私にとって完璧に機能します...
echo nl2br("\n");
参照: http://www.w3schools.com/php/func_string_nl2br.asp
それが役に立てば幸い :)
この答えは非常に明白で、理解するのに永遠にかかりました:
echo "foo
bar";
ラッピングのように見えることを知っています。そうではありません。私がやったことは、文字通りヒット return foo
とbar
の間の文字列の途中。 HTMLソースに新しい行を作成し、PHPを恐ろしく見せます。これはLinux/Apacheにありました。
echo "foo<br />bar";
html要素の改行は、white-space
スタイルプロパティに依存します。ほとんどの要素では、デフォルトのwhite-space
はauto
です。これは、テキストが要素の幅に達したときの改行を意味します。 \n
によるテキストの区切りが必要な場合は、white space: pre-line
を読み取り、行を分割する\n
スタイル、またはwhite-space: pre
を親要素に指定する必要があります。また、\t
なども読み取ります。注:\n
を文字列ではなくブレークラインとして書き込むには、使用しない場合は二重引用符で囲まれた文字列("\n"
)を使用する必要があります。空白、常に改行のHTML要素を使用することを歓迎します。これは<br/>
です
2つのタイプを使用して\n
をphpに適用できます
CSSを使用する
body {
white-space: pre-wrap;
}
これは、空白を保持するようにブラウザに指示するので、
<body>
<?php
echo "Fo\n Pro";
?>
</body>
結果:
Fo
プロ
nl2br
を使用
nl2br
:文字列のすべての改行の前にHTML改行を挿入します
<?php
echo nl2br("Fo.\nPro.");
?>
結果
Fo。
プロ。