4

这个问题纯粹是为了获得整洁的 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>

同样,这纯粹是一个外观问题,与错误地呈现页面无关。我希望源代码美观且易读,并且可以肯定我可以在第一个 echo 末尾添加“\n”字符,但这并不令人满意,而且会相当烦人。有什么办法可以解决这个问题,还是我只是做错了什么?

4

3 回答 3

3

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

例如

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

产生:

HelloWorld

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

产生:

Hello⏎
World

然而,

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

生产

Hello ⏎
World

所以解决方法是记住在每个块的输出末尾添加一个换行符,或者在结束标记和它之后的换行符之间插入一个空格。

于 2012-07-30T15:19:53.890 回答
0

尝试让它强制换行:

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

</div>
于 2012-07-30T14:47:30.573 回答
0

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

如果您希望添加的文本具有换行符,只需执行以下操作:

<?php echo "This is some extra text.\n" ?>
于 2012-07-30T14:49:25.607 回答