【发布时间】:2011-09-01 16:35:00
【问题描述】:
我无法从输出缓冲区中抑制 PHP 位置标头。我的理解是输出缓冲区应该抑制标头,直到它们被刷新。我还认为不应使用 ob_end_clean() 发送任何标头。
但是,如果您看到下面的代码,如果我取消注释标题行(第二行),我总是会被重定向到 google,并且永远不会看到“完成”。
ob_start();
//header("Location: http://www.google.com");
$output = ob_get_contents();
ob_end_clean();
$headers_sent = headers_sent();
$headers_list = headers_list();
var_dump($headers_sent);
var_dump($headers_list);
die('finished');
我需要抑制任何标头重定向,最好将它们捕获在输出缓冲区中,这样我就知道这些条件会产生重定向。我知道我可以用 curl 来做到这一点(将跟随重定向设置为 false),但由于我想要缓冲的所有文件都在我自己的服务器上,所以 curl 被证明非常慢并且占用了大量的数据库连接。
有没有人有任何建议或知道任何捕获/抑制位置标题的方法?
谢谢, 汤姆
【问题讨论】:
标签: php header location buffering