http://www.framca.com

                                                                  【波兰五分彩网址】php里缓冲区的作用是什么-PHP问题

                                                                  什么是缓冲区(buffer)?

                                                                  简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取。其实缓冲区最本质的作用就是,协调高速CPU和相对缓慢的IO设备(磁盘等)的运作。

                                                                  PHP在执行的时候,在什么地方有用到缓冲区?

                                                                  想要了解PHP的缓冲区,就要知道执行PHP的时候,缓冲区被设置到了什么地方。

                                                                  当执行PHP的时候,如果碰到了echo print_r之类的会输出数据的代码,PHP就会将要输出的数据放到PHP自身的缓冲区,等待输出。

                                                                  当PHP自身的缓冲区接到指令,指示要输出缓冲区的内容时,将会把缓冲区内的数据输出到apache上,apache接受到PHP输出的数据,然后再把该数据存在到apache自身的缓冲区内,等到输出。

                                                                  当apache接受到指令,只是要输出缓冲区的内容时,将会把缓冲区的内容输出,返回到浏览器。

                                                                  步骤:执行php---->(碰到echo,print_r之类输出)将输出的数据放到php自身的缓冲区,等待输出---->(接收输出缓冲区内容)数据输出到apache上,存入apache自身的缓冲区---->(接收输出指定)缓冲区内容输出,返回到浏览器

                                                                  echo、print => php output_buffering => webServer buffer => browser buff => browser display

                                                                  即:脚本输出 => php的缓冲区设置 => 系统的缓冲区设置(apache、nginx) =&g[t; 浏览器的缓冲区设置 => 显示给用户

                                                                  由此可见,PHP要输出数据的时候,将会经过两个缓冲区(先是自身的,然后是apache的),再返回到浏览器。

                                                                  相关推荐:《PHP入门教程》

                                                                  缓冲区在PHP中起到什么作用?

                                                                  1.最常见的就是在使用header函数之前,就已经输出了某些数据,这样会导致某些错误,例如 Cannot modify header information – headers already sent by;

                                                                  echo "this is test";header("LOCATION http://www.baidu.com");

                                                                  出现这个错误的原因是,在header之前已经输出了某些数据,而输出这些数据的同时,apache将会同时发送一个响应状态到浏览器上(既然有输出,即这个请求是有效的),而其后你又再次使用he)ader函数。

                                                                  发送http头,则会返回这个错误,错误的意思是:HTTP头已经发送出去了,你不能对他再做修改。

                                                                  为什么使用缓冲区可以避免这个错误呢?

                                                                  因为header函数是不受缓冲区影响的,当一碰到header函数的时候,PHP马上执行apache发送这一个http头都浏览器。

                                                                  而输出的数据PHP打开输出缓冲区后,这些数据将会存放在缓冲区,等待输出。这样就可以避免了之前所发生的错误。

                                                                  2.通过PHP写文件下载程序的时候。((实例篇)PHP实现HTTP断点续传的方法的原理)

                                                                  郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

                                                                  上一篇:用符号symbol字符190来替换字符*怎么操作-word
                                                                  下一篇:没有了