刷新后发送标题

时间:2015-02-12 10:18:15

标签: php http-headers flush

我目前正在重写网站的前端,目的是使用类似于facebook的bigpipe内容呈现(在指定优先级的区域之后刷新区域)

我已经完成了这个,没关系,但遗憾的是,由于刷新了一个又一个区域和新的渲染顺序,我回显内容并在脚本中间调用的标题不会被发送。

所以,要把它作为一个具体的例子:我刷新一些内容后如何发送标题?一个简单的代码:

echo $layout;
ob_flush();
header("Location: http://www.google.com");

不幸的是我不能使用像

这样的东西
if(headers_sent()) {
     // use javascript redirect
}

因为有时会有非重定向标题,并且网站中有1000个重定向(是的,它很大)。

我可以以某种方式在刷新后发送标题吗?或以某种方式启动缓冲区,冲洗它,清空它,然后发送标题 - >这将是最好的解决方案。

也许有人可以指出我正确的方向,这很烦人。

1 个答案:

答案 0 :(得分:1)

您必须在向浏览器发送任何内容之前发送标题,这样您就可以像在第一个示例中那样执行此操作。

另外,请查看headers_sent()手册页。它没有说'#34;某些标题已发送",它表示"所有标题都已发送,您无法再发送"。使用该功能,您可以检查是否可以进行Location重定向,或者是否必须通过JavaScript进行重定向。