8

重複の可能性:
PHPで改行を一
重引用符で印刷する一重引用符と二重引用符の文字列の違い

$unit1 = 'paragrahp1';
$unit2 = 'paragrahp2';
echo '<p>' . $unit1 . '</p>\n';
echo '<p>' . $unit2 . '</p>';

これは(ソースの表示で)表示されています:

<p>paragraph1</p>\n<p>paragraph2</p>

しかし、新しい行を印刷するのではなく、私が期待していることではありません。

4

6 に答える 6

47

PHPは、二重引用符で囲まれている場合にのみ、エスケープ文字(エスケープされた円記号\\とエスケープされた一\'重引用符を除く)を解釈します("

これは機能します(改行になります):

"\n"

これは改行にはなりません:

'\n'
于 2012-12-06T10:23:28.640 に答える
11

代わりにPHP_EOL( "End Of Line")を使用することをお勧めします。クロスプラットフォームです。

例えば:

$unit1 = 'paragrahp1';
$unit2 = 'paragrahp2';
echo '<p>' . $unit1 . '</p>' . PHP_EOL;
echo '<p>' . $unit2 . '</p>';
于 2012-12-06T10:25:09.580 に答える
7

エスケープシーケンス(および変数も)は、二重引用符で囲まれたヒアドキュメント文字列内で機能します。したがって、コードを次のように変更します。

echo '<p>' . $unit1 . "</p>\n";

PS:1つの明確化、一重引用符の文字列は2つのエスケープシーケンスを受け入れます。

  • \'一重引用符で囲まれた文字列内で一重引用符を使用する場合
  • \\文字通りバックスラッシュを使用したい場合
于 2012-12-06T10:22:57.113 に答える
3

\n二重引用符で囲む必要があります!

echo "hello\nworld";

出力

hello
world

これを回避する良い方法は、PHPをよりテンプレート言語として使用することです。

<p>
    Hello <span><?php echo $world ?></span>
</p>

出力

<p>
    Hello <span>Planet Earth</span>
</p>

すべての改行はそのまま保持されていることに注意してください。

于 2012-12-06T10:23:12.650 に答える
2

\n二重引用符で囲む必要があります!

 echo '<p>' . $unit1 . "</p>\n";
于 2012-12-06T10:23:33.983 に答える
0
$unit1 = "paragrahp1";             
$unit2 = "paragrahp2";  
echo '<p>'.$unit1.'</p>';  
echo '<p>'.$unit2.'</p>';

<p>/ nタイプの構文を使用する必要がないように、新しい行で開始するときは常にタグを使用してください。

于 2012-12-06T12:15:01.520 に答える