0

プロセスの進行状況を示すプログレス バーを表示する HTML ページがあります。これは、flush() を使用してデータをブラウザーに送信します。私はこれを Zend プロセスで機能させようとしていますが、特にヘッダー、コンテンツを送信し、終了コマンドでプロセスを終了することで短絡しています。

HTML ページが正しく表示されます (進行状況バーが完了します)。Zend/PHP ページには、完成したページのみが表示されます (手順は表示されません)。メソッド (flush()) は同​​一であるため、これはヘッダーの問題であると想定しています。

Chrome では、HTML ページのヘッダーは次のように表示されます。

HTTP/1.1 200 OK
Date: Fri, 27 Jul 2012 14:38:07 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/0.9.8r DAV/2 PHP/5.3.2
X-Powered-By: PHP/5.3.2
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

Zend/PHP ページのヘッダーは次のようになります。

HTTP/1.1 200 OK
Date: Fri, 27 Jul 2012 14:44:13 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/0.9.8r DAV/2 PHP/5.3.2
X-Powered-By: PHP/5.3.2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

PHP で指定している唯一のヘッダー情報は次のとおりです。

header('Content-Type: text/html; charset=utf-8');

このページのコードを使用しています: http://w3shaman.com/article/php-progress-bar-script

どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

0

マシューは修正しました。Zend/PHP ページで、flush() の前に ob_flush() を追加すると、問題が修正されました。Zend が提案どおりに出力バッファリングを有効にしているかどうかはわかりません。

于 2012-07-27T15:25:48.147 に答える
0

Zend が出力バッファリングを有効にしている可能性があるため、呼び出すob_flush()前に呼び出してください。flush()

于 2012-07-27T15:24:59.213 に答える