【发布时间】:2011-04-04 06:47:27
【问题描述】:
在迁移到我的新服务器时遇到了一些奇怪的事情。
我有一个脚本可以根据特定条件将用户重定向到另一个网页。然而,我正在做的是回显“重定向...”,然后使用 header() 函数实际重定向。以下是代码的外观:
if( $condition ) {
echo 'Redirecting...';
header( 'Location: ' . $url );
}
现在我只是在切换到我们的新服务器后才注意到这是不正确的,对其进行了测试,发现它不会重定向只是输出重定向......并且一旦我搜索它,得知你不能拥有任何类型的在使用 header() 函数之前输出(除非使用 ob_start 等)。
问题是,为什么这段代码不能在任何 PHP 安装中运行,但在我的旧服务器上运行?它会在 header() 之前使用 echo 重定向没有问题。
谢谢!
【问题讨论】:
-
我相信你可以在你的 php.ini 中默认开启输出缓冲。缺点是整个请求必须在任何输出发送给用户之前完成。