dongxue163536 2017-09-17 11:03
浏览 37
已采纳

发送输出后调用header()

According to the PHP documentation:

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.

but when I tried the example that the documentation reports (with a little change):

<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;
?>

all worked just fine, no error poped up and I smoothly got my <html> tag in the output and my X-Header in the headers.

I'm using PHP 7.1.9, so is still correct what the documentation says?

  • 写回答

2条回答 默认 最新

  • douzuo0711 2017-09-17 11:23
    关注

    The documentation is still correct.

    For performance purposes, the interpreter puts the output in a buffer. When the buffer is filled for the first time, it sends the headers before sending the content of the buffer.

    This lets the script produce a small amount of output before sending the headers.

    Read more about output buffering configuration settings.

    The option output_buffering allows turning the feature off or on and even setting the size of the buffer.

    The option implicit_flush tells the interpreter to flush the buffer after every output block. This forces your script to send the headers correctly, before any output.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划