【问题标题】:PHP showing output of foreach to screen, for each itemPHP 为每个项目显示 foreach 的输出到屏幕
【发布时间】:2009-07-29 15:28:54
【问题描述】:

我注意到 php 的一件事是,在脚本停止工作之前没有任何内容输出到屏幕上。对于我正在进行的项目,我输入了一个包含 100 多个项目的列表,它对每个项目执行 HTTP 请求,完成后,显示一个页面,其中包含每个项目的状态、成功失败等。

我想知道是否有办法在每个“foreach”循环发生时输出结果?因此,观看屏幕的用户会一次看到一行或 5 行之后发生的魔法。

我只见过使用 Ajax 类型请求完成此操作,这可能是我应该寻找的吗?谁能给我指出一个可以做到这一点的php函数还是不可能的?

【问题讨论】:

    标签: php ajax foreach


    【解决方案1】:

    最好将所有脚本输出存储在缓冲区中,然后在需要时刷新缓冲区。

    例如:

    <?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!

    【讨论】:

      【解决方案2】:

      flush()应该可以,或者你可以看看all the output buffering functions

      【讨论】:

        【解决方案3】:

        使用flush()command

        【讨论】:

          【解决方案4】:

          我用

          flush(); @ob_flush();
          

          在输出之后。

          【讨论】:

            猜你喜欢
            • 2011-09-27
            • 1970-01-01
            • 1970-01-01
            • 2020-04-19
            • 1970-01-01
            • 2011-01-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多