微信公众号文章排版设计,软媒win7优化大师,常平网站,平面设计培训课程培训本问题已经有最佳答案#xff0c;请猛点这里访问。我有一个PHP结束标记的有趣现象。 我有一个由Ajax调用执行的php文件。 在php文件中包含了一个具有各种功能的php库文件。 当这个库被包含时#xff0c;php响应包括一堆空行。 当我从库中删除结束标记时#xff0c;这种情况就…本问题已经有最佳答案请猛点这里访问。我有一个PHP结束标记的有趣现象。 我有一个由Ajax调用执行的php文件。 在php文件中包含了一个具有各种功能的php库文件。 当这个库被包含时php响应包括一堆空行。 当我从库中删除结束标记时这种情况就停止了。任何人都可以向我解释这里发生了什么你可能在标签后面有一些空行然后空行被解释为空行。 删除php结束标记时这些行被视为php代码并且空的php行不会写入输出缓冲区。库PHP文件在?之后有一堆换行符。 它们作为输出直接发送到输出缓冲区因为它们不会被解释为中的PHP代码。 这是已发送标头错误的最常见原因以及许多框架省略?的原因。php.net/manual/en/language.basic-syntax.phptags.php如果文件是纯PHP代码最好省略文件末尾的PHP结束标记。这可以防止意外的空格或新行 在PHP结束标记之后添加我认为这个回答在另一个类似的问题上是一个完美的答案。这是有据可查的。从PHP手册The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include() or require(), so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files.省略结束标记有助于防止意外的空格或换行符添加到文件末尾。这是PHP的核心功能与其他语言不同您需要使用特殊标记(通常为)标记PHP代码因为其他所有内容都被视为文字输出This is not PHPecho This is PHP . PHP_EOL;?This is not PHP eitherD:\tmpphp test.phpThis is not PHPThis is PHPThis is not PHP either尽管手册提到了HTML但PHP并不真正了解/关心其标签之外的内容类型。如果您忘记在进一步填充后关闭PHP块通常会出现语法错误This is not PHPecho This is PHP . PHP_EOL;This is not PHP eitherD:\tmpphp test.phpPHP Parse error: syntax error, unexpected is (T_STRING) in D:\tmp\borrame.php on line 6空行是一种特殊情况因为它们在几乎所有语言(PHPHTMLCSSJavaScript ......)中都是有效且几乎不可见的因此它们经常被忽视。删除?标记后文字空白行已从脚本输出中消失因为它们已成为PHP代码的一部分(因此它们已开始被忽略)。当然PHP会忽略空行但不一定是你生成的任何内容正如我所说它不需要是HTML它可以是图片PDF文档Excel电子表格。当它是文件的最后一部分时不关闭最后一个PHP块可以很容易地避免伪造白线。今天你不应该在你的PHP中使用echo。 指向MVC模板系统框架等。