在 php 循环中睡眠并刷新

发布于 2024-12-09 22:37:11 字数 597 浏览 0 评论 0原文

我有以下代码:

<?php
$initialSleep = ( isset($_GET['is']) ) ? $_GET['is'] : 0; // seconds - default 0 if not specified
$loopCount = ( isset($_GET['lc']) ) ? $_GET['lc'] : 1; // default 1 if not specified
$loopSleep = ( isset($_GET['ls']) ) ? $_GET['ls'] : 1; // seconds - default 0 if not specified

sleep($initialSleep);

for ( $i = 0; $i < $loopCount; $i++) {
    sleep($loopSleep);
    echo time();
    ob_flush();
}
?>

我的问题是,我得到的总延迟等于loopCount * LoopSleep,而不是每隔一段时间回显一次time(),然后所有内容立即回显。我看过其他关于此类事情的帖子,并且使用flush()似乎可以解决大多数人的问题——但不是我。

任何帮助表示赞赏

I have the following code:

<?php
$initialSleep = ( isset($_GET['is']) ) ? $_GET['is'] : 0; // seconds - default 0 if not specified
$loopCount = ( isset($_GET['lc']) ) ? $_GET['lc'] : 1; // default 1 if not specified
$loopSleep = ( isset($_GET['ls']) ) ? $_GET['ls'] : 1; // seconds - default 0 if not specified

sleep($initialSleep);

for ( $i = 0; $i < $loopCount; $i++) {
    sleep($loopSleep);
    echo time();
    ob_flush();
}
?>

My problem is the instead of getting the time() echoed out at intervals I get a total delay equal to loopCount * loopSleep and then everything echoes out at once. I have seen other posts about this sort of thing and using flush() seems to fix it for most people - not me though.

Any help appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

定格我的天空 2024-12-16 22:37:11

试试这个:

ob_start();
for ( $i = 0; $i < $loopCount; $i++) {
    sleep($loopSleep);
    echo time();
    ob_flush();
    flush();
}

Try this:

ob_start();
for ( $i = 0; $i < $loopCount; $i++) {
    sleep($loopSleep);
    echo time();
    ob_flush();
    flush();
}
缪败 2024-12-16 22:37:11

如果您的网络服务器认为这样可以更有效地传输,则它可能会自行缓冲。也许您可以将其关闭,但它可能不是生产效率最高的。

Your webserver may buffer on it's own if it thinks it will get a more efficiënt transfer that way. Maybe you can turn this off but it's probably not the most efficient in production.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文