PHP-如何使用传输编码流式传输内容:分块

PHP-如何使用传输编码流式传输内容:分块,php,stream,comet,Php,Stream,Comet,我正在尝试使用php实现一个简单的流测试。通过下面的代码,我可以看到响应正在流式传输-使用firebug net选项卡 但是,在响应完成之前,不会呈现内容。 我错过了什么 header('Content-Encoding: chunked'); header('Transfer-Encoding: chunked'); header('Content-Type: text/html'); header('Connection: keep-alive'); flush(); ob_flush();

我正在尝试使用php实现一个简单的流测试。通过下面的代码,我可以看到响应正在流式传输-使用firebug net选项卡

但是,在响应完成之前,不会呈现内容。 我错过了什么

header('Content-Encoding: chunked');
header('Transfer-Encoding: chunked');
header('Content-Type: text/html');
header('Connection: keep-alive');
flush();
ob_flush();

for ($i = 0; $i < 100; $i++) {
    dump_chunk('<script type="text/javascript">console.log(' . $i . ')</script>');
    flush();
    ob_flush();
    sleep(1);
}

function dump_chunk($chunk) {
    echo sprintf("%x\r\n", strlen($chunk));
    echo $chunk;
    echo "\r\n";
}
header('Content-Encoding:chunked');
标题(“传输编码:分块”);
标题('Content-Type:text/html');
标题(“连接:保持活动”);
冲洗();
ob_flush();
对于($i=0;$i<100;$i++){
dump_chunk('console.log('.$i.'));
冲洗();
ob_flush();
睡眠(1);
}
函数转储块($chunk){
echo sprintf(“%x\r\n”,strlen($chunk));
echo$chunk;
回显“\r\n”;
}

chunked
不是
内容编码的有效令牌。我认为这可以由apache处理。这基本上是一个复制粘贴代码。(或多或少)来自