HTTP标头差异-递增加载页面


HTTP Headers difference - load page incrementally

我有一个HTML页面,它在进程中显示进度条。它使用flush()将数据发送到浏览器。我正试图在Zend进程中实现这一点,我通过专门发送一个标头、内容,然后用退出命令结束该进程来缩短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

如有任何帮助,我们将不胜感激。谢谢

在调用flush()之前先调用ob_flush(),因为Zend可能已激活输出缓冲。

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