想象一下:
<?php
include_once('galeria.php');
?>
galeria.php 文件是一个完整的 html/php 文件。是否可以包含文件并防止标题再次发送?我只是不想使用 iframe 或更改我的包含文件。
您使用“标题”一词使每个人都感到困惑。标头是 Web 服务器发送的内容,用于告诉浏览器如何处理有效负载。你在谈论 HEAD,我怀疑 HTML 和 BODY 标签。
好吧,任何明智的人都会简单地将文件分成几部分,但是出于某种奇怪的原因(您没有告诉我们原因),您声明您不希望这样做。在这种情况下,您可以读取 galeria.php 文件并使用 PHP 的 DOM 类方法(首选)或一些 REGEX(不太好)从 galeria.php 文件中提取正文有效负载。
你能告诉我们为什么你不想明智地设计这个吗?
标头只发送一次——就在第一个字节发送到浏览器之前。字节可以通过 (例如) echo()
, print()
, 或通过节外的文字 text/html发送到浏览器<?php ?>
。
如果包含 的文件galeria.php
不需要显式发送任何标题,那么您无需担心。
否则 - 如果您的文件galeria.php
需要明确发送标头,您可以缓冲galeria.php
如下输出:
ob_start()
(将所有输出重定向到临时缓冲区),galeria.php
(输出被发送到缓冲区,而不是浏览器。标题尚未发送),header()
,ob_end_flush()
以将缓冲区内容发送到浏览器(以及所有默认标头)。见http://www.php.net/manual/en/function.ob-start.php和http://php.net/manual/en/book.outcontrol.php
包含一次
该
include_once
语句在脚本执行期间包含并评估指定的文件。这是与语句类似的行为include
,唯一的区别是如果文件中的代码已经被包含,它将不会再次被包含。顾名思义,它将仅包含一次。