u010433585 2015-06-14 07:07 采纳率: 0%
浏览 722

php页面不断弹出值ob_flusb和flush函数

set_time_limit(0);
ob_start();
echo str_repeat(' ',4000).'
';
ob_flush();
flush();
$i = 0;
while (true) {
echo $i++.'
';

    ob_flush();
    flush();
    sleep(1);
} 

/*现在问题是一直在等待,但是没有出现值,求帮忙*

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 23:36
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你的PHP脚本中存在一些错误。首先,ob_flush()flush() 是用来清除输出缓冲区的,而不是用于刷新缓存的。

    其次,你正在使用一个无限循环,这意味着脚本将一直运行下去,直到你的服务器被强制关闭或你停止执行这个脚本。

    最后,你的代码并没有实际显示任何内容。为了使脚本正常工作并打印信息,你需要添加一些逻辑来控制输出,并且确保你的脚本不会阻塞太久。

    这是一个修改后的版本:

    <?php
    
    // 设置时间限制为0以禁用超时功能
    set_time_limit(0);
    
    // 开始输出缓冲区
    ob_start();
    
    // 输出字符串,然后刷新输出缓冲区
    echo str_repeat(' ', 4000);
    
    // 刷新输出缓冲区
    ob_flush();
    
    // 刷新输出缓冲区
    flush();
    
    $i = 0;
    while ($i < 5) {
        // 假设这是一个计算循环,它会增加 $i 的值。
        $i++;
    }
    
    // 当计数器达到5时,退出循环
    if ($i == 5) {
        exit(); // 结束程序
    } else {
        // 如果计数器大于5,则继续循环
        continue;
    }
    
    // 错误处理:如果 $i 大于5,这可能是因为你的脚本有错误或者输入数据有问题。
    ?>
    

    在这个例子中,我们设置了一个循环,当计数器小于等于5时,脚本将继续执行;否则,脚本将在结束时返回。这样,即使脚本长时间运行,也不会阻塞。

    评论

报告相同问题?