4

この問題は、純粋に HTML コードの出力を整理するためのものです。

単純な PHP ファイルでは、タグを使用してドキュメントに PHP を埋め込むタイミングを選択できます。ただし、このタグが通常の HTML 要素のすぐ上で使用されると、2 つを区切る改行が明らかに削除または無視されるようです。

PHP で次のコードを確認します。

<div>
<?php echo "This is some extra text." ?>
</div>

出力は次のとおりです。

<div>
This is some extra text.</div>

ただし、タグの直後に何かを追加すると、

<div>
<?php echo "This is some extra text." ?> Now the newline is honored.
</div>

改行が尊重されているようです:

<div>
This is some extra text. Now the newline is honored.
</div>

繰り返しますが、これは純粋に表面的な問題であり、ページの不適切なレンダリングとは何の関係もありません。ソースコードを読みやすく、最初のエコーに最後に「\n」文字を追加したいのですが、これは満足のいくものではなく、かなり面倒です。この問題の解決策はありますか、それとも何か間違ったことをしているだけですか?

4

3 に答える 3

3

これは PHP の長年の問題です。基本的に、終了タグの直後に改行がある場合、PHP はそれを食べます。しかし、終了タグの直後に他の文字 (空白であっても) がある場合、その後の改行は尊重されます。

例えば

<?php echo "Hello"; ?>\nWorld

生成:

HelloWorld

<?php echo "Hello"; ?>\n\nWorld

生成:

Hello⏎
World

でも、

<?php echo "Hello"; ?> \nWorld

生産する

Hello ⏎
World

したがって、回避策は、各ブロックの出力の最後に改行を追加することを忘れないか、終了タグとその後の改行の間にスペースを挿入することです。

于 2012-07-30T15:19:53.890 に答える
0

文字は見えませんが、\n後でテキストを追加すると、return/enter を押します。

追加したテキストに改行文字を含めたい場合は、次のようにします。

<?php echo "This is some extra text.\n" ?>
于 2012-07-30T14:49:25.607 に答える
0

改行を強制するようにしてみてください。

<div>
<?php echo "This is some extra text." ?>

</div>
于 2012-07-30T14:47:30.573 に答える