header方法可以用来重定向,也可以用来定义一些http错误码。但在使用时如果是在代码中间使用,必须保证前面没有任何输出。通过ob_start()可以解决此问题,也就是开启缓冲,开启后输出和你要header的数据一起作为一个response返回。
使用时一定要注意,如果不需要header前面的输出(如调试信息),一定要使用ob_end_clean()来清除缓冲。如下
ob_start();
echo 'aaa';//debug
ob_end_clean();
header(xxxxx);
如果你要调试的话,必须注释ob_end_clean(),不然会看不到任何输出。