PHP的header函数头部输出的问题解析
<?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'); ?>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。