|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^ob_flush/flush在手册中的形貌,都是革新输入缓冲区,而且还必要配套利用,以是会招致良多人利诱,作者明天也碰着这个成绩了,其实不解,搜刮半天综合各类材料对他们有了一点小小的熟悉,在这里先记上去,以避免过两天又忘了。
实在,他们俩的操纵工具分歧,有些情形下,flush基本不做甚么事变。
ob_*系列函数,是操纵PHP自己的输入缓冲区。
以是,ob_flush是革新PHP本身的缓冲区。
而flush,严厉来说,这个只要在PHP做为apache的Module(handler大概filter)安装的时分,才有实践感化。它是革新WebServer(能够以为特指apache)的缓冲区。
在apachemodule的sapi下,flush会经由过程挪用sapi_module的flush成员函数指针,直接的挪用apache的api:ap_rflush革新apache的输入缓冲区,固然手册中也说了,有一些apache的其他模块,大概会改动这个举措的了局。
1.有些Apache的模块,好比mod_gzip,大概本人举行输入缓存,
2.这将招致flush()函数发生的了局不会当即被发送到客户端扫瞄器。
3.乃至扫瞄器也会在显现之前,缓存吸收到的内容。比方Netscape
4.扫瞄器会在承受到换行或html标志的开首之前缓存内容,而且在
5.承受到</table>标志之前,不会显现出全部表格。
6.一些版本的MicrosoftInternetExplorer只要当承受到的256个
7.字节今后才入手下手显现该页面,以是必需发送一些分外的空格来让这
8.些扫瞄器显现页面内容。
以是,准确利用俩者的按次是。先ob_flush,然后flush。
假如Web服务器的操纵体系是windows体系,那按次倒置大概不利用ob_flush()也不会呈现成绩。可是在Linux体系上就没法革新输入缓冲。固然,在其他sapi下,不挪用flush也能够,只不外为了包管你代码的可移植性,倡议配套利用。
自己依据上述举行的测试:
测试1:- <?phpob_start();echo1;ob_flush();//输入php缓存并革新echo2;ob_flush();//输入php缓存并革新$cc=ob_get_contents();ob_end_clean();var_dump($cc);?>output:12string(0)""测试2:<?phpob_start();echo1;flush();//输入apache缓存并革新echo2;flush();//输入apache缓存并革新$cc=ob_get_contents();ob_end_clean();var_dump($cc);?><?phpob_start();echo1;ob_flush();//输入php缓存并革新echo2;ob_flush();//输入php缓存并革新$cc=ob_get_contents();ob_end_clean();var_dump($cc);?>output:12string(0)""测试2:<?phpob_start();echo1;flush();//输入apache缓存并革新echo2;flush();//输入apache缓存并革新$cc=ob_get_contents();ob_end_clean();var_dump($cc);?>
复制代码 output:string(2)"12"
测试3:- <?phpob_start();echo1;ob_flush();//输入php缓存并革新flush();//输入apache缓存并革新echo2;ob_flush();//输入php缓存并革新flush();//输入apache缓存并革新$cc=ob_get_contents();ob_end_clean();var_dump($cc);?>
复制代码 output:12string(0)""- <?phpob_start();echo1;flush();//输入apache缓存并革新ob_flush();//输入php缓存并革新echo2;flush();//输入apache缓存并革新ob_flush();//输入php缓存并革新$cc=ob_get_contents();ob_end_clean();var_dump($cc);?>
复制代码 output:12string(0)""
培训的第二阶段,开始了PHP语言语法结构和应用的学习。 |
|