【发布时间】:2013-11-26 00:52:51
【问题描述】:
我遇到了一个有趣的现象,即 PHP 结束标记。我有一个由 Ajax 调用执行的 php 文件。在 php 文件中包含一个具有各种功能的 php 库文件。当包含这个库时,php 响应包含一堆空行。当我从库中删除结束标记时,这种情况就停止了。 谁能给我解释一下这里发生了什么?
【问题讨论】:
-
您可能在 ?> 标记后有一些空行,然后这些空行被解释为空行。当您删除 php 结束标记时,这些行被视为 php 代码,并且空的 php 行不会写入输出缓冲区。
-
库 PHP 文件在其
?>之后有一堆换行符。这些将作为输出直接发送到输出缓冲区,因为它们不会被解释为<?php ?>中的 PHP 代码。这是“标头已发送”错误的最常见原因,也是许多框架省略?>的原因。 -
php.net/manual/en/language.basic-syntax.phptags.php "如果文件是纯 PHP 代码,最好在文件末尾省略 PHP 结束标记。这样可以防止在 PHP 结束标记后意外添加空格或新行"
-
我认为 this response 在另一个类似问题中是一个完美的答案。