码迷,mamicode.com
首页 > Web开发 > 详细

PHP的header函数头部输出的问题解析

时间:2015-04-14 11:16:45      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

<?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函数头部输出的问题解析

标签:

原文地址:http://blog.csdn.net/river131/article/details/45038151

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!