PHP技巧:php输出控制函数——ob系列的几个区别

ob_start()这个当然是打开输出缓冲,无异议,当然有个ob_start(“ob_gzhandler”),这个是用gzip压缩优化大小,等于ob_gzhandler。

ob_flush()刷新输出缓冲,个人理解:ob中带flush的都是将缓冲区内容全部输出到浏览器。

ob_end()根本没有这个函数,但是以这个开头的几个函数都是要关闭缓冲的,看来php还是蛮注重效率,关闭缓冲的同时一定要做另一件事!成员有:ob_end_clean(关闭并清除缓冲区)、ob_end_flush(关闭缓冲并输出到浏览器)

ob_clean 清空缓冲区,此时只是将缓冲区内容清除,并没有关闭缓冲,可继续向其中写入内容,但此时应该从0开始写

ob_get()同样不存在这个函数,但是以这个开头的几个函数都是将缓冲区内容取出来作为字符串,有:ob_get_clean、ob_get_contents、ob_get_flush 不难理解这几个是干嘛的,但是ob_get_length(获取缓冲区内容长度)、ob_get_level(等于0表示没打开缓冲,大于0难道表示打开缓冲区的个数?)看:
Quotation

and for ob_get_level() it is the “nest count”. Ob_get_level() returns 0 if you are not within an output buffer, 1 if you have got one open, 2 if you have got two, etc.

而事实上,我没有成功的将他的结果输出 unhappy ,还有一个函数ob_get_status(返回一个数组,包括缓冲区的各项参数,似乎调试比较有用),这几个ob_get开头与前面的意义不同。

ob_list_handlers,列出使用中的缓冲,即采用默认缓冲、还是gzip压缩的,还是其他的。

ob_implicit_flush,打开绝对的刷新,据说以提高执行效率。

发表评论

电子邮件地址不会被公开。 必填项已用*标注