【问题标题】:PHP ob_flush flush() not workingPHP ob_flush 刷新()不起作用
【发布时间】:2017-02-01 17:21:15
【问题描述】:

在说什么之前。我已经为此寻找解决方案。我现在正在尝试解决这个问题。

我目前正在尝试通过每次下载文件时回显来显示 ftp 下载的进度。

这是我的代码的一部分:

<?php

header('Content-type: text/html; charset=utf-8');
header('Cache-Control: no-cache, must-revalidate');
header('X-Accel-Buffering: no');

// ftp connection stuff goes here

$string_length = 4096;

for ($i=0; $i < $filesLength; $i++) {

    if (ftp_get($ftp_conn, './downloads/'.$files[$i]['local'], $files[$i]['server'], FTP_ASCII)) {
        echo 'File: '.$files[$i]['local'].' saved.<br>';

        // $string = str_repeat('.', $string_length);
        // echo '<div style="display:none;">'.$string . '</div>';

        ob_flush();
        flush();
    } else {
        echo "Error";
    }

}

那里有 2 条注释行,如果我取消注释它的所有内容。

我应该怎么做才能完成这项工作?

【问题讨论】:

  • php.net/manual/en/function.ob-flush.php 声明 flush(); ob_flush(); 而不是相反。
  • 不起作用。再次。如果我添加 2 条未注释的行,它会完美运行。但是在 DOM 中添加了一堆 ....。
  • 你能换个浏览器或电脑试试吗?

标签: php flush


【解决方案1】:

我猜我还没有找到合适的解决方案。

我最终使用了一个 4kb 的字符串来触发刷新。

这可行,但不是预期的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    相关资源
    最近更新 更多