PHP使用缓存即时输出内容(output buffering)的方法
PHP提供了输出缓存机制,也就是”output buffering机制“。开启缓冲区之后,PHP脚本会将所有的输出放入缓冲区,直到缓冲区满或者脚本执行结束。缓冲区会自动刷出,将缓冲内容发送给浏览器。使用输出缓冲功能可以避免因为输出频繁导致浏览器反应缓慢。
下面,我将讲解如何使用PHP缓存即时输出内容(output buffering)的方法:
开启缓冲区
要使用输出缓存功能,必须先开启输出缓存。可以使用PHP内置函数ob_start()
来开启:
上面的代码中,我们使用ob_start()
函数开启了输出缓冲区,并且向缓冲区中输出了一句话。这时候,该语句并不会被直接输出到浏览器,而是存放在了缓冲区中。
输出缓冲区内容
当缓冲区内容已经准备好,要输出给浏览器时,可以使用PHP内置函数ob_flush()
或 flush()
来刷出输出缓冲区内容。
关闭缓冲区
当不再需要输出缓冲区时,可以使用PHP内置函数ob_end_flush()
或ob_end_clean()
函数来关闭输出缓冲区,如果使用ob_end_flush()
函数,缓冲区内容将会被刷出,如果使用ob_end_clean()
函数,缓冲区内容将会被丢弃。
示例说明
示例一
下面的代码演示了如何使用缓存即时输出内容:
在上面的例子中,我们使用ob_start()
函数开启了输出缓冲区,并在缓冲区中输出了一句话。接着,我们使用了sleep()
函数模拟了一个耗时操作。在这个期间,所有的输出都会被缓存,直到最后我们调用了ob_flush()
函数来刷出缓冲区中的内容,输出到浏览器。
示例二
下面的代码演示了如何同时开启多个缓存:
在上面的例子中,我们使用了两次ob_start()
函数,开启了两个缓存。在缓存区中,我们输出了一句话,模拟了一个耗时操作。最后使用了两次ob_end_flush()
函数来刷出缓存区中的内容,输出到浏览器。