【发布时间】:2012-06-24 23:40:59
【问题描述】:
header() 函数有一些问题。它可以工作,也不能同时工作。
手册说:
请记住,必须在任何实际输出之前调用 header() 通过普通 HTML 标记、文件中的空行或 PHP 发送。
否则会报错。
但我可以在发送输出后在 html 脚本或 php 代码中的任何位置调用 header() 并且 header() 有效:
<?php
echo "Output here";
header("Location: http://stackoverflow.com"); // it works, it redirects to the site
echo "And output here";
?>
任何header() 都有效。这个header("Some-Header: bar-foo")可以设置header:
<!DOCTYPE html>
<html>
<body>
… some script here…
<?php
print_r(headers_list()); // only one header: [0] => X-Powered-By: PHP/5.3.5
header("Some-Header: bar-foo")
print_r(headers_list()); // two headers: [0] => X-Powered-By: PHP/5.3.5
[2] => Some-Header: bar-foo
var_dump(headers_sent($file, $line)); // bool(false)
var_dump($file); // string(0) ""
var_dump($line); // int(0)
?>
… some script here…
</body>
</html>
怎么可能?设置有问题吗?
【问题讨论】:
标签: php http-headers httpresponse response.redirect