PHP标记删除文档中的上一个换行符

时间:2012-07-30 14:44:50

标签: php html formatting newline

这个问题纯粹是为了整理HTML代码输出。

在一个简单的PHP文件中,您可以选择使用标记在文档中嵌入PHP的时间。但是,看起来当这个标签直接用在常规HTML元素上方时,显然会删除或忽略分隔两者的换行符。

在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”字符,但这并不令人满意,也会令人讨厌。对这个问题有什么补救措施,或者我只是做错了什么?

3 个答案:

答案 0 :(得分:3)

这是PHP的长期问题。基本上,如果你的close标签后面有一个换行符,那么PHP就会吃它。但是如果在关闭标记之后有一些其他字符(即使是空格),那么在它之后的任何换行符都会受到尊重。

E.g。

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

产生

HelloWorld

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

产生

Hello⏎
World

然而,

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

产生

Hello ⏎
World

因此,解决方法是要么记住在每个块的输出末尾添加换行符,要么在关闭标记和后面的换行符之间插入一个空格。

答案 1 :(得分:0)

尝试让它强制换行:

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

</div>

答案 2 :(得分:0)

\n字符对您来说是不可见的,但是当您添加额外的文本后,您将返回/输入。

如果您希望添加的文本包含换行符,请执行以下操作:

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