PHP heredoc不保留格式

Sea*_*Wuf 2 php format heredoc

使用以下代码,我希望看到显示5条单独的行.相反,它将所有内容包装在一条线上......没有标签,没有前导空格,没有空行.不是我所期待的.

在查看了其他代码之后,程序员插入了我尝试过的一系列代码(使用
代替)并得到了我正在寻找的一些结果.我期待太多了吗?我永远无法获得领先的空间和标签.这可能是一个设置问题吗?

<?php
$author = "Alfred E Newman";

$out = <<<_END
       This is a Headline

   This is the first line.
   This is the second.
      - Written by $author.
_END;

print $out;
// echo $out; // ... didn't format as expected either
?>
Run Code Online (Sandbox Code Playgroud)

结果:这是标题这是第一行.这是第二个. - 由Alfred E Newman撰写.

rdl*_*rey 5

如果您要输出到HTML,请尝试将print调用包装在<pre>标签中.显示HTML时,浏览器不会关注操作系统换行符.但是,如果你查看页面的源代码,你会看到输出格式符合预期.

如果你想显示在您的HTML新行,你将不得不使用<br/><p>或适当的CSS样式机制.

UPDATE

哦,我忘了!正如警惕的@MarkBaker(感谢)所提到的,PHP的nl2brdocs函数将通过用<br/>标签替换换行符来处理这样的操作:

$output = nl2br($output);
print $output;
Run Code Online (Sandbox Code Playgroud)

  • 并且不要忘记nl2br()函数 (3认同)