我们在实际的开发中,是否听说过在header之前不能有任何的实际输出。甚至有的认为header函数必须写在代码的最前面。可是你是否试验过header函数之前输出东西?下来让我们更深层次的了解一下
缓冲区做个比喻,就好比我们看电影时的缓存一样。它不会之间立即给我们播放出来,而是先将一部分下载好的电影放到缓存里面,再有缓存播放出来。我们编写php代码也是这个道理 php的缓存机制-output_buffering
<?php ob_start(); echo 'hello world!'; echo ob_get_contents();//输出hello world!hello world!
一般在233行左右,默认是4096表示4096字节也就是4kB 下来将4096修改为5,重新运行这段代码 <?php echo 'hello world!'; header('content-type: text/html;charset=utf-8;'); 对于刚才测试不会出现警告或错误的现在却出现了,错误就是: Cannot modify header information - headers already sent header与缓冲区之间的分析
总结在实际当中,我们最好还是把header写在页面最前面。因为我们就不确定我们header之前的输出内容是否缓冲区能放下。 (责任编辑:最模板) |