现在的位置: 首页 > 综合 > 正文

PHP输出缓存

2013年12月21日 ⁄ 综合 ⁄ 共 422字 ⁄ 字号 评论关闭

一般情况下,PHP都是将整个页面全部执行完成后,才会把要输出的内容发送回客户端。例如有如下代码:

for ($i = 0; $i < 10; $i++) {
	echo $i;
	sleep(1);
}

这段代码会在10秒钟后一次性输出“0123456789”。

但是有时候我们需要在PHP页面执行过程中执行了输出函数后就马上把内容发送到客户端,而不等待页面全部执行完成,这就用到了PHP的输出控制函数ob_flush()和flush()。我们把代码修改成下面这样:

for ($i = 0; $i < 10; $i++) {
	echo $i;
	ob_flush();
	flush();
	sleep(1);
}

这样,页面就会每一秒输出一个数字。
我们可以很方便的使用PHP的输出控制来实现页面执行进度的显示。不过,由于PHP页面有执行时间限制,而且长时间执行一个页面会对服务器造成一定的压力,因此,在做进度显示的时候,最好还是使用Ajax来实现。

在第一行加 set_time_limit(0); 即可永久执行下去了

抱歉!评论已关闭.