微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – echo“string”,而每个long循环迭代(flush()不起作用)

我有一个循环需要很长时间才能执行,我希望脚本在循环迭代完成时显示某些东西.
echo "Hello!";

flush();

for($i = 0; $i < 10; $i ++) {
    echo $i;
    //5-10 sec execution time
    flush();
}

在整个脚本完成之前,这不会显示回音.什么地方出了错?

PHP手册:

flush()可能无法覆盖Web服务器的缓冲方案,并且它对浏览器中的任何客户端缓冲都没有影响.它也不影响PHP用户空间输出缓冲机制.这意味着如果您正在使用ob输出缓冲区,则必须调用ob_flush()和flush()来刷新ob输出缓冲区.

echo "Hello!";
flush();
ob_flush();

for($i = 0; $i < 10; $i ++) {
    echo $i;
    //5-10 sec execution time
    flush();
    ob_flush();
}

– 或 – 您可以刷新并关闭缓冲

<?PHP
//Flush (send) the output buffer and turn off output buffering
while (ob_get_level() > 0)
    ob_end_flush();

echo "Hello!";

for($i = 0; $i < 10; $i ++) {
    echo $i . "\r\n";
}

?>

原文地址:https://www.jb51.cc/php/139714.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐