这个问题纯粹是为了整洁的 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”字符,但这并不令人满意,而且会很烦人。这个问题有什么补救办法,还是我做错了什么?
最佳答案
这是 PHP 的一个长期存在的问题。基本上,如果您的关闭标记紧跟其后有一个换行符,PHP 会吃掉它。但是,如果在关闭标记之后紧接着有一些其他字符(即使是空格),那么它之后的任何换行符都会被考虑。
例如
<?php echo "Hello"; ?>\nWorld
产生:
HelloWorld
和
<?php echo "Hello"; ?>\n\nWorld
产生:
Hello⏎
World
但是,
<?php echo "Hello"; ?> \nWorld
产生
Hello ⏎
World
因此解决方法是要么记得在每个 block 的输出末尾添加一个换行符,要么在关闭标记和其后的换行符之间插入一个空格。
关于PHP 标记删除文档中的最后一个换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11723835/