\ n或\ n在php echo中不打印

时间:2012-12-06 10:22:03

标签: php string

  

可能重复:
  Print newline in PHP in single quotes
  Difference between single quote and double quote string in php

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

显示(在查看源上):

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

但不是我所期待的,不是打印新行,可能是什么?

6 个答案:

答案 0 :(得分:32)

PHP只在双引号(\\)中解释转义字符(转义反斜杠\'和转义单引号"除外)

这有效(产生换行符):

"\n"

这不会产生换行符:

'\n'

答案 1 :(得分:6)

转义序列(以及变量)在double quotedheredoc字符串中起作用。所以将代码更改为:

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

PS:一个澄清,单引号字符串确实接受两个转义序列:

  • \'当您想在单引号字符串中使用单引号时
  • \\当您想要逐字地使用反斜杠时

答案 2 :(得分:3)

\n必须是双引号!

echo "hello\nworld";

输出

hello
world

一个很好的解决方法是使用PHP作为一种模板语言

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

输出

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

请注意,所有换行都保持畅销!

答案 3 :(得分:3)

更好地使用PHP_EOL(&#34; End Of Line&#34;)。它是跨平台的。

E.g:

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

答案 4 :(得分:2)

\n必须是双引号!

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

答案 5 :(得分:0)

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

在以新行开头时始终使用标记<p>,因此您不需要使用/ n类型语法。