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

在调用ob_flush()之前调用flush()Zend 可能会激活输出缓冲。

于 2012-07-27T15:24:59.213 回答
0

Mathieu 解决了这个问题。在 Zend/PHP 页面中的 flush() 之前添加 ob_flush() 解决了这个问题。我不确定 Zend 是否按照建议激活了输出缓冲。

于 2012-07-27T15:25:48.147 回答