PHP中的“Transfer-Encoding:chunked”标头

前端之家收集整理的这篇文章主要介绍了PHP中的“Transfer-Encoding:chunked”标头前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将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();

猜你在找的PHP相关文章