<?php
/*
header('Location : http://segmentfault.com/');这个方法,是在响应头里面,发一个302重定向。而响应头当然要比响应主体要提前输出。
*/
echo "<html></html>";
header('location:http://www.baidu.com');
/*但是运行以上发现成功跳转名,是因为这种并不符合HTTP规范的HTTP头,很可能整个HTTP Response都无法解析。
幸运的是,PHP貌似为你修复了这个HTTP头格式问题。
关于HTTP头先发的问题,的确不应该在HTTP内容输出之后输出HTTP头。但是服务器会缓存输出,虽然你使用了echo或者print,但在那个时刻服务器还没有将这些内容作为HTTP报文输出,这个时候你仍然有机会修改HTTP头。
如果你只是单纯想要引发一个错误的话,参考例2
*/
//例2
echo "<html></html>";
ob_flush();#输出缓冲区中的内容
flush();#刷新缓冲区,函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用 ob_flush() 和 flush() 函数来刷新输出缓冲
// We'll be outputting a PDF
header('location:http://www.baidu.com');
?>
PHP的header函数头部输出的问题解析
最新推荐文章于 2022-11-10 11:26:29 发布