2012-07-30 108 views
4

此问题纯粹是为了整理HTML代码输出。PHP标记删除文档中的最后一个换行符

在一个简单的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”字符,但这并不令人满意,而且也很烦人。有没有对这个问题的任何补救措施,或者我只是做错了什么?

+5

这只是PHP。 – Matt 2012-07-30 14:47:24

+0

使用模板引擎(如** Twig **)应防止该行为。 – Florent 2012-07-30 15:21:26

回答

3

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

E.g.

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

生产:

HelloWorld 

而且

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

生产:

Hello⏎ 
World 

然而,

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

产生

Hello ⏎ 
World 

所以解决方法是记住要在每个块的输出的末尾添加一个新行,或插入该闭标签和后换行之间的空间。

+1

如果你想知道为什么(https://brian.moonspot.net/php-history-newline-closing-tag)。 – fracz 2015-06-08 22:14:41

0

尝试有它喜欢逼换行符:

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

</div> 
0

\n字符是看不见你,但是当你后添加额外的文本,你打回/输入。

如果你想添加的文字有换行符,只要做到以下几点:

<?php echo "This is some extra text.\n" ?> 
相关问题