今天碰到一个小问题,本着研究到底的精神。这个问题被我研究了一下,当然到底时不可能的,什么事情到底了就会总结出哲学的那几个问题上,比如人为什么活着等问题。
就是用header函数的时候会出现什么headers already sent这个问题,其实这个问题在ubuntu中是已经没有了的,因为,因为的原因在后面讲。
首先讲一下headers。这里的headers就是http header的意思。当你请求一个页面的时候,服务器会返回两部分,一部分就是header,一部分时主要内容。这个header储存了很多有用的东西,比如你的浏览器的cookie等内容,而内容则是你看到的东西。
为什么会出现headers already sent这个问题大体上很好理解。PHP在输出的时候,会产生header数据,如果没有明显的用函数指定header的值(比如header函数、setcookie函数都会改变header的值),那么会产生默认的值。header的作用时很多有用的东西,http协议的创造者让它必须要在主体内容之前发送到浏览器。如果在这之前你已经用php输出一些东西了,那么当然会引起冲突了。