Php 为什么此标题位置重定向在内容已被回送后起作用? 默认情况下可能启用了输出缓冲。如果希望依赖此功能,则应手动启用它

Php 为什么此标题位置重定向在内容已被回送后起作用? 默认情况下可能启用了输出缓冲。如果希望依赖此功能,则应手动启用它,php,apache,redirect,header,buffer,Php,Apache,Redirect,Header,Buffer,header函数向http响应添加http公共头。因此,重定向被设置,浏览器在显示输出之前获得302消息 flush命令php发送在调用时已经准备好的http响应。这就是为什么第二个代码不会设置头(必须在发送任何输出之前设置头) 并且,PHP不应输出任何内容,直到: 脚本已被处理(即使错误停止解析) 使用flush()将其设置为将输出发送到脚本中的某个位置 最后,检查输出控制 <? echo "lalala"; header("Location: http://www.google.c

header函数向http响应添加http公共头。因此,重定向被设置,浏览器在显示输出之前获得302消息

flush命令php发送在调用时已经准备好的http响应。这就是为什么第二个代码不会设置头(必须在发送任何输出之前设置头)

并且,PHP不应输出任何内容,直到:

  • 脚本已被处理(即使错误停止解析)
  • 使用flush()将其设置为将输出发送到脚本中的某个位置
最后,检查输出控制

<?
echo "lalala";
header("Location: http://www.google.com/");
<?
echo "lalala";
flush();
header("Location: http://www.google.com/");