我注意到的一件事是,在脚本停止工作之前,不会向屏幕输出任何内容。对于我正在处理的项目,我输入了一个超过100个项的列表,它对每个项执行一个http请求,当完成时,显示一个包含每个项的状态、成功失败等的页面。
我想知道的是,是否有一种方法可以在每个“foreach”循环发生时输出它们的结果?因此,观看屏幕的用户可以看到魔术一行一行地发生,或者说在5行之后发生。
我只在ajax类型的请求中见过这种情况,这是我应该做的吗?有人能指点一下PHP函数吗?
最佳答案
最好将所有脚本输出存储在缓冲区中,然后在需要时刷新缓冲区。
例如:
<?php
if (ob_get_level() == 0) ob_start();
$test = Array('one','two','three','four');
foreach ($test as $key=>$val)
{
echo $test;
ob_flush();
flush();
}
ob_end_flush();
?>
确保禁用mod_gzip!