我想将Transfer-Encoding:chunked header添加到我正在输出的文件(它刚生成的纯文本),但是当我添加:
header("Transfer-Encoding: chunked"); flush();
浏览器不想打开文件.
The webpage at … might be
temporarily down or it may have moved
permanently to a new web address.
我需要做些什么呢?
您需要使用您发送的每个块发送Content-Length.看看
Wikipedia的第一印象,分块编码是怎样的.它不是那么微不足道,而且在很多情况下都是超大的.
更新:
首先发送标题,因为它们必须始终在任何内容之前发送(也使用分块编码).然后发送(对于每个块)大小(十六进制),然后是内容.记住每个块后面的flush().最后,您必须发送一个零大小的块,以确保连接正确关闭.
它没有经过测试,但是这样的东西
header("Transfer-Encoding: chunked"); echo "5\r\n"; echo "Hello"; echo "\r\n\r\n"; flush(); echo "5\r\n"; echo "World"; echo "\r\n"; flush(); echo "0\r\n\r\n"; flush();