8

可能重复:
在 PHP 中用单引号打印换行符 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

Better use PHP_EOL ("End Of Line") instead. It's cross-platform.

E.g.:

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

转义序列(以及变量)在双引号heredoc字符串中工作。因此,将您的代码更改为:

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

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

  • \'当你想在单引号字符串中使用单引号时
  • \\当你想从字面上使用反斜杠时
于 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 回答