0

我尝试使用标题功能更改页面,但由于某种原因它不起作用,我回显了 ob_start() 结果,它显示 1. 代码不多,但它是:

<?php 
ob_start();
header('Location: http://www.google.com');

?>

它只是显示 1

还有一件事,这是带有 vardump 的 ob_status 输出

array(5) { ["level"]=> int(1) ["type"]=> int(1) ["status"]=> int(0) ["name"]=> string(22) "default output handler" ["del"]=> bool(true) }

建议?

编辑:起初在 start_ob() 之前有一个回声呼叫

4

2 回答 2

3

您之前开始输出header()。它显示了 1(true实际上)并抑制了header()功能的影响。echo从那里移除。

来自php.net

请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。

作为旁注:

  1. 尝试删除节标记前后的所有空行。这可能是一个原因。
  2. 尝试在任何输出之前放置 header() 调用。
于 2013-09-17T08:22:55.567 回答
1

echo在发送标头之前制作一个。你不能那样做。发送任何内容后无法更改标头。

echo表明1因为on_start()函数返回布尔值truefalse

你说,即使你去掉这条线,它仍然不起作用。不早点发内容吗?甚至是空间?您是否启用了错误显示?包括通知。

于 2013-09-17T08:24:08.513 回答