微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐