gpt4 book ai didi

php - 输出发送后调用 header()

转载 作者:行者123 更新时间:2023-12-03 21:26:12 28 4
gpt4 key购买 nike

根据 PHP 文档:

header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.



但是当我尝试文档报告的示例时(稍作改动):
<html>
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('X-Header: http://www.example.com/');
exit;
?>

一切正常,没有出现错误,我顺利拿到了 <html>输出中的标记和我的 X-Header在标题中。

我使用的是 PHP 7.1.9,所以文档所说的仍然正确吗?

最佳答案

文档仍然是正确的。

出于性能目的,解释器将输出放入缓冲区。当缓冲区第一次被填满时,解释器发送头,然后发送缓冲区的内容(并清空缓冲区)。在此之后,函数 header() 的任何调用失败。不能再修改报头,也不能再添加其他报头,因为报头已经发送。

这让脚本在发送 header 之前产生少量输出。

阅读更多关于 output buffering配置设置。

选项 output_buffering 允许关闭或打开该功能,甚至设置缓冲区的大小。

选项 implicit_flush 告诉解释器在每个输出块之后刷新缓冲区。这会强制您的脚本在任何输出之前正确发送 header 。

关于php - 输出发送后调用 header(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46263364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com